面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式的概念

面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式的概念

ID:37623913

大小:460.42 KB

頁(yè)數(shù):25頁(yè)

時(shí)間:2019-05-26

面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式的概念_第1頁(yè)
面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式的概念_第2頁(yè)
面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式的概念_第3頁(yè)
面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式的概念_第4頁(yè)
面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式的概念_第5頁(yè)
資源描述:

《面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式的概念》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、目標(biāo)?了解軟件復(fù)用的重要性?了解面向?qū)ο髮?shí)現(xiàn)軟件復(fù)用的幾大設(shè)計(jì)原則?了解什么是設(shè)計(jì)模式微軟亞洲研究院資助西安交大軟件學(xué)院內(nèi)容?軟件的可維護(hù)性與可復(fù)用性?“開(kāi)---閉”原則(OCP)?里氏代換原則(LSP)?依賴(lài)倒轉(zhuǎn)原則(DIP)?接口隔離原則(ISP)?合成/聚合復(fù)用原則(CARP)?迪米特法則(LoD)?設(shè)計(jì)模式的概念及歷史微軟亞洲研究院資助西安交大軟件學(xué)院軟件的可維護(hù)性與可復(fù)用性?軟件系統(tǒng)的可維護(hù)性?軟件系統(tǒng)的可復(fù)用性微軟亞洲研究院資助西安交大軟件學(xué)院軟件系統(tǒng)的可維護(hù)性?軟件維護(hù)的費(fèi)用=軟件開(kāi)發(fā)的費(fèi)用×2?軟件的維護(hù)=軟件的再生?導(dǎo)致軟件可維護(hù)性低

2、的原因:–過(guò)于僵硬(Rigidity)–過(guò)于脆弱(Fragility)–復(fù)用率低(Immobility)–黏度過(guò)高(Viscosity)微軟亞洲研究院資助西安交大軟件學(xué)院軟件系統(tǒng)的設(shè)計(jì)目標(biāo)?可擴(kuò)展性(Extensibility)–新的性能可以很容易地加入到系統(tǒng)中–是“過(guò)于僵硬”的反面?靈活性(Flexibility)–可以允許代碼修改平穩(wěn)地發(fā)生,而不會(huì)涉及到很多其他的模塊–是“過(guò)于脆弱”的反面?可插入性(Pluggability)–可以很容易的將一個(gè)類(lèi)抽出去,同時(shí)將另一個(gè)有同樣接口的類(lèi)加入進(jìn)來(lái)–是“黏度過(guò)高”的反面微軟亞洲研究院資助西安交大軟件學(xué)院系統(tǒng)

3、的可復(fù)用性?復(fù)用(Reuse)–重復(fù)使用?軟件復(fù)用的好處–較高的生產(chǎn)效率?重復(fù)使用的軟件成分可以為將來(lái)的使用節(jié)省費(fèi)用–較高的軟件質(zhì)量?可復(fù)用的軟件成分總是比不能復(fù)用的軟件成分有更多的質(zhì)量保證–恰當(dāng)使用復(fù)用可以改善系統(tǒng)的可維護(hù)性微軟亞洲研究院資助西安交大軟件學(xué)院傳統(tǒng)的復(fù)用?代碼的剪貼復(fù)用?算法的復(fù)用–如經(jīng)典的排序算法等?數(shù)據(jù)結(jié)構(gòu)的復(fù)用–如隊(duì)、棧等微軟亞洲研究院資助西安交大軟件學(xué)院面向?qū)ο笤O(shè)計(jì)的復(fù)用?數(shù)據(jù)的抽象化和繼承關(guān)系–使得概念和定義可以復(fù)用?多態(tài)性–使得實(shí)現(xiàn)和應(yīng)用可以復(fù)用?抽象化和封裝–可以保持和促進(jìn)系統(tǒng)的可維護(hù)性?面向?qū)ο笤O(shè)計(jì)的復(fù)用重點(diǎn)的轉(zhuǎn)移–不再

4、集中在函數(shù)和算法等具體實(shí)現(xiàn)細(xì)節(jié)上–而是集中在最重要的含有宏觀商業(yè)邏輯的抽象層次上微軟亞洲研究院資助西安交大軟件學(xué)院面向?qū)ο笤O(shè)計(jì)復(fù)用對(duì)可維護(hù)性的支持?恰當(dāng)?shù)奶岣呦到y(tǒng)的可復(fù)用性,可以提高系統(tǒng)的可擴(kuò)展性–允許一個(gè)具有同樣接口的新的類(lèi)代替舊的類(lèi),是對(duì)抽現(xiàn)接口的復(fù)用–開(kāi)閉原則、里氏代換原則、依賴(lài)倒轉(zhuǎn)原則、組合復(fù)用原則?恰當(dāng)?shù)奶岣呦到y(tǒng)的可復(fù)用性,可以提高系統(tǒng)的靈活性–系統(tǒng)中的每一個(gè)模塊都盡可能的保持獨(dú)立,這樣在修改一個(gè)模塊的時(shí)候就不會(huì)向其他模塊傳遞修改的壓力–開(kāi)閉原則、迪米特法則、接口隔離原則?恰當(dāng)?shù)奶岣呦到y(tǒng)的可復(fù)用性,可以提高系統(tǒng)的可插入性–將復(fù)用定格在商業(yè)邏輯

5、層,也就是在抽象層進(jìn)行復(fù)用,這樣就可以與具體的實(shí)現(xiàn)類(lèi)沒(méi)有關(guān)系了–開(kāi)閉原則、里氏代換原則、組合復(fù)用原則微軟亞洲研究院資助西安交大軟件學(xué)院開(kāi)-閉原則?定義:–一個(gè)軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉–Softwareentitiesshouldbeopenforextension,butclosedformodification.?實(shí)現(xiàn)該原則的關(guān)鍵技術(shù):–抽象化?從抽象層導(dǎo)出一個(gè)或多個(gè)新的具體類(lèi)可以改變系統(tǒng)的行為,因此系統(tǒng)的設(shè)計(jì)對(duì)擴(kuò)展是開(kāi)放的?抽象層預(yù)見(jiàn)了所有的可能擴(kuò)展,因此,在任何擴(kuò)展情況下都不會(huì)改變,這就是對(duì)改變的關(guān)閉微軟亞洲研究院資助西安交大軟件學(xué)院舉

6、例?用面向?qū)ο蟮姆绞侥M我們回家之后開(kāi)燈、離開(kāi)家之后關(guān)燈的過(guò)程?對(duì)象–家?進(jìn)入操作?離開(kāi)操作–燈?打開(kāi)操作?關(guān)閉操作微軟亞洲研究院資助西安交大軟件學(xué)院類(lèi)圖描述publicvoidOpen(){publicvoidEnter(){mLight.Open();System.Console.WriteLine(“l(fā)ight}turnningon...”);publicvoidLeave(){}mLight.Close();publicvoidClose(){}System.Console.WriteLine(“l(fā)ightpublicLightlight{tu

7、rnningoff...”);get{returnmLight;}}set{mLight=value;}}微軟亞洲研究院資助西安交大軟件學(xué)院測(cè)試publicclassTestMain{publicstaticvoidMain(){Roomroom=newRoom();Lightlight=newLight();room.light=light;room.enter();System.Console.WriteLine(“l(fā)iving...”);room.leave();}}?現(xiàn)在要給房子里加上電視機(jī),程序該怎么改?微軟亞洲研究院資助西安交大軟件學(xué)院類(lèi)圖

8、描述publicvoidEnter(){mLight.Open();mTV.Open();}p

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。