版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
軟件設(shè)計原則與模式2015.08.11軟件架構(gòu)設(shè)計原則與模式目錄一、軟件設(shè)計原則二、設(shè)計模式介紹三、設(shè)計書籍推薦軟件架構(gòu)設(shè)計原則與模式軟件設(shè)計原則一、軟件架構(gòu)設(shè)計原則與模式單一職責(zé)原則定義:一個模塊(類、函數(shù))只負(fù)責(zé)一項職責(zé)益處:1.降低模塊復(fù)雜度,提高可讀性、可維護性2.降低變更的頻率、變更引起的風(fēng)險軟件架構(gòu)設(shè)計原則與模式依賴倒置原則定義:高層模塊不應(yīng)依賴底層模塊,底層模塊也不應(yīng)依賴高層模塊,二者都應(yīng)該依賴抽象益處:1.提升系統(tǒng)的結(jié)構(gòu)穩(wěn)定性2.低耦合軟件架構(gòu)設(shè)計原則與模式里氏替換原則定義:所有引用基類的地方必須能透明地使用其子類的對象益處:1.提升結(jié)構(gòu)穩(wěn)定性2.提高代碼可讀性、可維護性軟件架構(gòu)設(shè)計原則與模式接口隔離原則定義:客戶端不應(yīng)該依賴它不需要的接口益處:1.提升結(jié)構(gòu)穩(wěn)定性2.提高代碼可讀性、可維護性軟件架構(gòu)設(shè)計原則與模式開閉原則定義:當(dāng)軟件需要變化時,盡量通過擴展軟件實體的行為來實現(xiàn)變化,而不是通過修改已有的代碼來實現(xiàn)變化益處:1.提升系統(tǒng)運行穩(wěn)定性2.減少測試、修改等工作量軟件架構(gòu)設(shè)計原則與模式設(shè)計模式介紹二、軟件架構(gòu)設(shè)計原則與模式什么是設(shè)計模式軟件設(shè)計中的成功經(jīng)驗軟件設(shè)計中的交流語言特定的軟件設(shè)計上下文中,針對特定問題的解決方案可復(fù)用軟件開發(fā)的基礎(chǔ)軟件架構(gòu)設(shè)計原則與模式如何創(chuàng)建對象?1.newxxx()2.簡單工廠(SimpleFactory)3.工廠方法(FactoryMethod)軟件架構(gòu)設(shè)計原則與模式newxxx()最簡單做法看到了new,就會想到“具體”。當(dāng)有一群相關(guān)的具體類時,通常會寫出以下的代碼:PizzaoderPizza(Stringtype){ Pizzapizza; if(type.equals(“cheese”)){ pizza=newCheesePizza(); }elseif(type.equals(“greek”)){ pizza=newGreekPizza(); } pizza.prepare(); pizza.bake(); pizza.cut();
…}軟件架構(gòu)設(shè)計原則與模式工廠(Factory)PizzaoderPizza(Stringtype){ Pizzapizza;
pizza.prepare(); pizza.bake(); pizza.cut();
…}創(chuàng)建一個部件,來專門創(chuàng)建Pizza。我們稱這個部件為工廠軟件架構(gòu)設(shè)計原則與模式簡單工廠(SimpleFactory)publicclassSimplePizzaFactory(Stringtype){ Pizzapizza; if(type.equals(“cheese”)){ pizza=newCheesePizza(); }elseif(type.equals(“greek”)){ pizza=newGreekPizza(); }… returnpizza;}軟件架構(gòu)設(shè)計原則與模式使用簡單工廠后軟件架構(gòu)設(shè)計原則與模式使用簡單工廠后軟件架構(gòu)設(shè)計原則與模式簡單工廠(SimpleFactory)LNPizzaFactorylnFactory=newLNPizzaFactory();PizzaStorelnStore=newPizzaStore(lnFactory);lnStore.orderPizza(‘cheese’);SXPizzaFactorylnFactory=newSXPizzaFactory();PizzaStoresxStore=newPizzaStore(sxFactory);sxStore.orderPizza(‘cheese’);…軟件架構(gòu)設(shè)計原則與模式工廠方法(FactoryMethod)意圖:定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。適用性當(dāng)一個類不知道它所必須創(chuàng)建的對象的類的時候。當(dāng)一個類希望由它的子類來指定它所創(chuàng)建的對象的時候。當(dāng)類將創(chuàng)建對象的職責(zé)委托給多個幫助子類中的某一個,并且你希望將哪一個幫助子類是代理者這一信息局部化的時候。軟件架構(gòu)設(shè)計原則與模式工廠方法(FactoryMethod)軟件架構(gòu)設(shè)計原則與模式工廠方法(FactoryMethod)軟件架構(gòu)設(shè)計原則與模式工廠方法(FactoryMethod)創(chuàng)建者類圖軟件架構(gòu)設(shè)計原則與模式工廠方法(FactoryMethod)軟件架構(gòu)設(shè)計原則與模式工廠方法:產(chǎn)品本身PublicabstractclassPizza{ Stringname;
… voidprepare(){…} voidbake(){…} voidcut(){…}
…}軟件架構(gòu)設(shè)計原則與模式工廠方法(FactoryMethod)創(chuàng)建者類軟件架構(gòu)設(shè)計原則與模式工廠方法(FactoryMethod)產(chǎn)品類軟件架構(gòu)設(shè)計原則與模式工廠方法(FactoryMethod)軟件架構(gòu)設(shè)計原則與模式依賴與依賴倒置軟件架構(gòu)設(shè)計原則與模式依賴與依賴倒置軟件架構(gòu)設(shè)計原則與模式依賴倒置原則定義:高層模塊不應(yīng)依賴底層模塊,底層模塊也不應(yīng)依賴高層模塊,二者都應(yīng)該依賴抽象軟件架構(gòu)設(shè)計原則與模式依賴與依賴倒置軟件架構(gòu)設(shè)計原則與模式其它常用的模式單例(Singleton)適配器(Adapter)橋接(Bridge)門面(Facade)代理(Proxy)觀察者(Observer)策略(Strategy)軟件架構(gòu)設(shè)計原則與模式兩個忠告設(shè)計模式的作用是解決問題,而不是為了模式而模式我們研究設(shè)計模式的目的是實用,不是為了學(xué)術(shù)研究軟件架構(gòu)設(shè)計原則與模式軟件設(shè)計書籍三、軟件架構(gòu)設(shè)計原則與模式軟件設(shè)計書籍推薦敏捷軟件開發(fā):原則、模式與實踐(RobertCMartin)HeadFirst設(shè)計模式設(shè)計模式:可復(fù)用軟件軟件設(shè)計的基礎(chǔ)(GoF)代碼大全(第二版)(SteveMcConnell)實現(xiàn)領(lǐng)域驅(qū)動開發(fā)(VanghnVernon)企業(yè)應(yīng)用架構(gòu)模式(MartinFow
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金華浙江金華永康市醫(yī)療急救指揮中心編外人員招聘歷年參考題庫(頻考版)含答案解析
- 2025年福建泉州市洛江區(qū)國有資產(chǎn)投資經(jīng)營有限公司招聘筆試參考題庫附帶答案詳解
- 2025年山東威海市大地測繪公司招聘筆試參考題庫含答案解析
- 2025年湖南省航務(wù)工程有限公司招聘筆試參考題庫含答案解析
- 2024社保保險創(chuàng)新產(chǎn)品研發(fā)與應(yīng)用合作協(xié)議3篇
- 國網(wǎng)浙江省電力限公司2025年高校畢業(yè)生招聘(第一批)高頻重點提升(共500題)附帶答案詳解
- 國網(wǎng)內(nèi)蒙古東部電力限公司2025年第二批高校畢業(yè)生招聘高頻重點提升(共500題)附帶答案詳解
- 二零二五年度診所廣告宣傳合作合同:診所與廣告?zhèn)髅焦局g關(guān)于診所廣告投放、宣傳推廣、合作方式等詳細(xì)條款的約定3篇
- 國家糧食局報名入口高頻重點提升(共500題)附帶答案詳解
- 國家基礎(chǔ)地理信息中心公開招聘畢業(yè)生資格審查結(jié)果高頻重點提升(共500題)附帶答案詳解
- 2024年航空職業(yè)技能鑒定考試-航空乘務(wù)員危險品考試近5年真題集錦(頻考類試題)帶答案
- 表 6-1-12? 咽喉部檢查法評分標(biāo)準(zhǔn)
- 《龍貓》電影賞析
- 低壓電工培訓(xùn)課件-電工常用工具、儀表的使用
- 林業(yè)專業(yè)知識考試試題及答案
- 2024年湖南省長沙市中考數(shù)學(xué)試題(含解析)
- 2024年大學(xué)華西醫(yī)院運營管理部招考聘用3人高頻難、易錯點500題模擬試題附帶答案詳解
- 分股退股協(xié)議書模板下載
- 深圳市南山區(qū)2024-2025學(xué)年數(shù)學(xué)三年級第一學(xué)期期末教學(xué)質(zhì)量檢測模擬試題含解析
- 配電網(wǎng)工程工藝質(zhì)量典型問題及解析
- 2023年二輪復(fù)習(xí)解答題專題二:一次函數(shù)的應(yīng)用方案設(shè)計型(原卷版+解析)
評論
0/150
提交評論