999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

設計模式在軟件開發中的應用

2012-12-31 00:00:00李雋
科技創新導報 2012年7期

摘 要:介紹了以面向對象技術為基礎的軟件設計模式的基本概念及分類,舉例說明了設計模式在軟件設計中的意義,強調了其在軟件教學中作用。

關鍵詞:設計模式 面向對象 模式使用

中圖分類號:TB562.4文獻標識碼:A文章編號:1674-098X(2012)03(a)-0039-01

引言

設計面向對象的軟件比較困難,而設計可重用的面向對象的軟件則更加困難。首先必須找出目標對象,按照合適的條件規入類,并為類定義接口和層次,及在類之間建立合適的關系。設計必須能解決當前的問題,而且要有一定的通用性以滿足未來的需求,盡量的避免重新設計。沒有經驗的新手常常在選擇中猶豫不決,導致他們采用用過的非對象技術。設計模式的出現使得重用成功的設計和架構更為容易。設計模式能夠幫助設計人員選擇那些可重用的設計。通過對類、對象交互及其深層次意圖的詳細說明,設計模式甚至能提高現有系統的可維護性和文檔質量。簡言之,設計模式能幫助更快的作出正確的設計。

1 設計模式概述

1.1 設計模式概念

設計模式通常描述了一組相互緊密作用的類與對象。設計模式提供一種討論軟件設計的公共語言,使得熟練設計者的設計經驗可以被初學者和其他設計者掌握。它實際是一套被反復使用、大家共曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。是對面向對象設計中反復出現的問題的解決方案。

1.2 設計模式的分類

(1)創建型:與對象創建有關。(2)結構型:處理類或對象的組合。(3)行為型:描述類或對象如何交互及如何分配職責。

2 設計模式的作用

(1)重用設計,重用設計比重用代碼更有意義,它會自動帶來代碼的重用。(2)為設計提供共用的詞匯,每個模式名就是一個設計詞匯,其概念使得程序員間的交流更加方便。(3)在開發文檔中采用模式詞匯可以讓其他人更容易理解你的想法,理解為什么你會這樣做,你都做了些什么。編寫開發文檔也更加容易。(4)應用設計模式可以讓重構系統變得容易,可確保開發正確的代碼,并降低在設計或實現中出現錯誤的可能性,還可以為重寫其他應用程序提供很好的系統框架。(5)正確使用設計模式,可以節省大量的時間。

3 軟件設計中的設計模式應用

以C#中新聞閱讀器為例,新聞閱讀器支持RSS/Atom 兩種格式,在教學中,分析得到使用XML技術完成了“新聞快客”抓取RSS格式的頻道新聞功能,事實上,在互聯網上還有另外一種新聞聚合格式 Atom,很多大型網站往往都會提供RSS+Atom兩種格式的頻道訂閱方式。例如Google網站的新聞板塊就支持Atom格式的新聞訂閱。我們就不得不考慮如何讓“新聞快客”支持Atom格式的頻道訂閱。而Atom格式與RSS格式的區別使得我們不得不定義兩個不同類,在使用對象時根據不同類分別創建不同實例。這種常規教學中的程序設計能夠實現相關功能。但使用設計模式將更有利于這一結構問題的實現。

簡單工廠模式是工廠模式中最簡單的一種模式,也是設計模式中最基本的一種模式,也就是在某一個工廠類中,定義一系列的不同方法,每一個方法能夠創建出某一個具體類的實例,這種無參的工廠方法,只要存在需要實例化的實體類的時候,就要在工廠類中增加一個創建的方法。這種實現方式的優點是,我們可以通過這個唯一的工廠類來管理整個應用中所有的對象的創建。大大增強了的 交流能力。具體到我們的新聞閱讀器系統就是添加了一個FeedFactory類用于創建不同類的實例,如果增加其他的頻道類型,你只需修改FeedFactory類,工廠的調用者無須任何改變,簡化了系統的維護。這樣做提高代碼效率,方便維護。而且,調用者也不需要知道所創建的實例對象屬于哪個子類。主要代碼如下:

class FeedFactory

{ public FeedFactory() { }

public static FeedBase CreateFeed(string title, string url, string desc)

{ FeedBase ret;//定義一個Feed基類

try

{ WebClient myClient = new WebClient();

myClient.DownloadFile(url, \"unknown.feed\");

XmlDocument myXml = new XmlDocument();

myXml.Load(\"unknown.feed\");

XmlNode rootNode = myXml.DocumentElement;

switch (rootNode.Name.ToLower())

{ case \"rss\": ret = new RssFeed(title, url, desc); break;

case \"feed\": ret = new AtomFeed(title, url, desc); break;

default: ret = 1; break; }

return ret; }

catch (Exception) { throw new Exception(); } } }

4 結語

由以上例子課件在早期的軟件基礎教學中主要強調面向對象技術中的各種概念來實現相關系統功能。隨著軟件開發群體對設計模式認識的日益深入,設計模式可以提高軟件的復用性,使得我們編寫的軟件更易于擴展,更容易適應需求的變化,設計模式是面向對象在實際應用中的集體體現,簡單工廠模式只是我們認識設計模式的一個開始,我們可以通過更深層次的課程,進一步學習更多的設計模式,進而更好的和社會中的軟件設計需求想適應。

時至今日,在可復用面向對象軟件的發展過程中,新的設計模式仍然不斷出現。熟悉這些模式的設計者可以立即將其應用到設計中而不需要重新發現它們。

參考文獻

[1]Alan Shaioway,James R.Trotr著,設計模式解析[M]:人民郵電出版社,2006.

[2]劉振安,董蘭芳,劉燕君.面向對象技術與UML.機械工業出版社,2007.

[3]孫衛琴.Tomcat 與 Java Web開發技術詳解[M] 電子工業出版社.

[4](美)弗里曼(Freeman,E.)等著Oreily Taiwan公司譯 head first 設計模式[M]:中國電力出版社,2007-9-1.

主站蜘蛛池模板: 国产chinese男男gay视频网| 久久久无码人妻精品无码| 无码粉嫩虎白一线天在线观看| 无码免费视频| 97亚洲色综久久精品| 国产精品天干天干在线观看| 午夜少妇精品视频小电影| 欧美成人手机在线观看网址| 四虎在线观看视频高清无码 | 欧美一区精品| 日韩激情成人| 自拍偷拍欧美日韩| а∨天堂一区中文字幕| 午夜视频免费试看| 中文字幕 日韩 欧美| 国产专区综合另类日韩一区 | 91精品专区国产盗摄| 午夜爽爽视频| 天天综合网亚洲网站| 婷婷亚洲综合五月天在线| 亚欧乱色视频网站大全| 尤物在线观看乱码| 亚洲一区网站| 亚洲一级无毛片无码在线免费视频 | 亚洲人成网站色7799在线播放 | 国产91小视频| 国产乱子伦精品视频| 午夜福利在线观看成人| 激情影院内射美女| 国产成人高清亚洲一区久久| 中文字幕亚洲乱码熟女1区2区| 亚洲视频色图| 99热这里只有精品国产99| 亚洲一级毛片在线观播放| 多人乱p欧美在线观看| 免费看美女毛片| 色噜噜综合网| 国产手机在线小视频免费观看| 亚洲欧美另类专区| 无码中文AⅤ在线观看| 亚洲视频一区| 亚洲色大成网站www国产| 狠狠色婷婷丁香综合久久韩国 | 精品第一国产综合精品Aⅴ| 青青热久免费精品视频6| 日韩精品无码免费一区二区三区| 国产成人综合在线观看| 久草网视频在线| 久久 午夜福利 张柏芝| 亚洲一区二区三区国产精品| 日韩av在线直播| 久久精品国产999大香线焦| 国产高清毛片| 国产高清在线观看| 青青青视频蜜桃一区二区| 久久精品aⅴ无码中文字幕 | 91久久偷偷做嫩草影院| 久久99这里精品8国产| 日本精品中文字幕在线不卡| 四虎精品国产永久在线观看| 91视频99| 美女被操91视频| 国产欧美日韩视频一区二区三区| 美女被操91视频| 熟妇丰满人妻av无码区| 无码高潮喷水专区久久| 不卡色老大久久综合网| 亚洲日本www| 欧美va亚洲va香蕉在线| 亚洲av无码人妻| 日韩一级二级三级| 国产一区二区三区夜色| 国产亚洲高清视频| 成人精品在线观看| 最新加勒比隔壁人妻| 99久久精品视香蕉蕉| 91精品网站| 综合亚洲色图| 亚洲成在人线av品善网好看| 一本大道香蕉久中文在线播放| 麻豆AV网站免费进入| 青青草国产在线视频|