




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件設(shè)計(jì)原則與模式2015.08.11當(dāng)前1頁(yè),總共36頁(yè)。目錄一、軟件設(shè)計(jì)原則二、設(shè)計(jì)模式介紹三、設(shè)計(jì)書籍推薦當(dāng)前2頁(yè),總共36頁(yè)。軟件設(shè)計(jì)原則一、當(dāng)前3頁(yè),總共36頁(yè)。單一職責(zé)原則定義:一個(gè)模塊(類、函數(shù))只負(fù)責(zé)一項(xiàng)職責(zé)益處:1.降低模塊復(fù)雜度,提高可讀性、可維護(hù)性2.降低變更的頻率、變更引起的風(fēng)險(xiǎn)當(dāng)前4頁(yè),總共36頁(yè)。依賴倒置原則定義:高層模塊不應(yīng)依賴底層模塊,底層模塊也不應(yīng)依賴高層模塊,二者都應(yīng)該依賴抽象益處:1.提升系統(tǒng)的結(jié)構(gòu)穩(wěn)定性2.低耦合當(dāng)前5頁(yè),總共36頁(yè)。里氏替換原則定義:所有引用基類的地方必須能透明地使用其子類的對(duì)象益處:1.提升結(jié)構(gòu)穩(wěn)定性2.提高代碼可讀性、可維護(hù)性當(dāng)前6頁(yè),總共36頁(yè)。接口隔離原則定義:客戶端不應(yīng)該依賴它不需要的接口益處:1.提升結(jié)構(gòu)穩(wěn)定性2.提高代碼可讀性、可維護(hù)性當(dāng)前7頁(yè),總共36頁(yè)。開閉原則定義:當(dāng)軟件需要變化時(shí),盡量通過(guò)擴(kuò)展軟件實(shí)體的行為來(lái)實(shí)現(xiàn)變化,而不是通過(guò)修改已有的代碼來(lái)實(shí)現(xiàn)變化益處:1.提升系統(tǒng)運(yùn)行穩(wěn)定性2.減少測(cè)試、修改等工作量當(dāng)前8頁(yè),總共36頁(yè)。設(shè)計(jì)模式介紹二、當(dāng)前9頁(yè),總共36頁(yè)。什么是設(shè)計(jì)模式軟件設(shè)計(jì)中的成功經(jīng)驗(yàn)軟件設(shè)計(jì)中的交流語(yǔ)言特定的軟件設(shè)計(jì)上下文中,針對(duì)特定問(wèn)題的解決方案可復(fù)用軟件開發(fā)的基礎(chǔ)當(dāng)前10頁(yè),總共36頁(yè)。如何創(chuàng)建對(duì)象?1.newxxx()2.簡(jiǎn)單工廠(SimpleFactory)3.工廠方法(FactoryMethod)當(dāng)前11頁(yè),總共36頁(yè)。newxxx()最簡(jiǎn)單做法看到了new,就會(huì)想到“具體”。當(dāng)有一群相關(guān)的具體類時(shí),通常會(huì)寫出以下的代碼:PizzaoderPizza(Stringtype){ Pizzapizza; if(type.equals(“cheese”)){ pizza=newCheesePizza(); }elseif(type.equals(“greek”)){ pizza=newGreekPizza(); } pizza.prepare(); pizza.bake(); pizza.cut(); …}當(dāng)前12頁(yè),總共36頁(yè)。工廠(Factory)PizzaoderPizza(Stringtype){ Pizzapizza;
pizza.prepare(); pizza.bake(); pizza.cut(); …}創(chuàng)建一個(gè)部件,來(lái)專門創(chuàng)建Pizza。我們稱這個(gè)部件為工廠當(dāng)前13頁(yè),總共36頁(yè)。簡(jiǎn)單工廠(SimpleFactory)publicclassSimplePizzaFactory(Stringtype){ Pizzapizza; if(type.equals(“cheese”)){ pizza=newCheesePizza(); }elseif(type.equals(“greek”)){ pizza=newGreekPizza(); }… returnpizza;}當(dāng)前14頁(yè),總共36頁(yè)。使用簡(jiǎn)單工廠后當(dāng)前15頁(yè),總共36頁(yè)。使用簡(jiǎn)單工廠后當(dāng)前16頁(yè),總共36頁(yè)。簡(jiǎn)單工廠(SimpleFactory)LNPizzaFactorylnFactory=newLNPizzaFactory();PizzaStorelnStore=newPizzaStore(lnFactory);lnStore.orderPizza(‘cheese’);SXPizzaFactorylnFactory=newSXPizzaFactory();PizzaStoresxStore=newPizzaStore(sxFactory);sxStore.orderPizza(‘cheese’);…當(dāng)前17頁(yè),總共36頁(yè)。工廠方法(FactoryMethod)意圖:定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類。工廠方法使一個(gè)類的實(shí)例化延遲到其子類。適用性當(dāng)一個(gè)類不知道它所必須創(chuàng)建的對(duì)象的類的時(shí)候。當(dāng)一個(gè)類希望由它的子類來(lái)指定它所創(chuàng)建的對(duì)象的時(shí)候。當(dāng)類將創(chuàng)建對(duì)象的職責(zé)委托給多個(gè)幫助子類中的某一個(gè),并且你希望將哪一個(gè)幫助子類是代理者這一信息局部化的時(shí)候。當(dāng)前18頁(yè),總共36頁(yè)。工廠方法(FactoryMethod)當(dāng)前19頁(yè),總共36頁(yè)。工廠方法(FactoryMethod)當(dāng)前20頁(yè),總共36頁(yè)。工廠方法(FactoryMethod)創(chuàng)建者類圖當(dāng)前21頁(yè),總共36頁(yè)。工廠方法(FactoryMethod)當(dāng)前22頁(yè),總共36頁(yè)。工廠方法:產(chǎn)品本身PublicabstractclassPizza{ Stringname; … voidprepare(){…} voidbake(){…} voidcut(){…} …}當(dāng)前23頁(yè),總共36頁(yè)。工廠方法(FactoryMethod)創(chuàng)建者類當(dāng)前24頁(yè),總共36頁(yè)。工廠方法(FactoryMethod)產(chǎn)品類當(dāng)前25頁(yè),總共36頁(yè)。工廠方法(FactoryMethod)當(dāng)前26頁(yè),總共36頁(yè)。依賴與依賴倒置當(dāng)前27頁(yè),總共36頁(yè)。依賴與依賴倒置當(dāng)前28頁(yè),總共36頁(yè)。依賴倒置原則定義:高層模塊不應(yīng)依賴底層模塊,底層模塊也不應(yīng)依賴高層模塊,二者都應(yīng)該依賴抽象當(dāng)前29頁(yè),總共36頁(yè)。依賴與依賴倒置當(dāng)前30頁(yè),總共36頁(yè)。其它常用的模式單例(Singleton)適配器(Adapter)橋接(Bridge)門面(Facade)代理(Proxy)觀察者(Observer)策略(Strategy)當(dāng)前31頁(yè),總共36頁(yè)。兩個(gè)忠告設(shè)計(jì)模式的作用是解決問(wèn)題,而不是為了模式而模式我們研究設(shè)計(jì)模式的目的是實(shí)用,不是為了學(xué)術(shù)研究當(dāng)前32頁(yè),總共36頁(yè)。軟件設(shè)計(jì)書籍三、當(dāng)前33頁(yè),總共36頁(yè)。軟件設(shè)計(jì)書籍推薦敏捷軟件開發(fā):原則、模式與實(shí)踐(RobertCMartin)HeadFirst設(shè)計(jì)模式設(shè)計(jì)模式:可復(fù)用軟件軟件設(shè)計(jì)的基礎(chǔ)(GoF)代碼大全(第二版)(SteveMcConnell)實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)開發(fā)(VanghnVernon)企業(yè)應(yīng)用架構(gòu)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供熱應(yīng)急搶險(xiǎn)管理辦法
- 便民流動(dòng)攤位管理辦法
- 急性創(chuàng)傷骨折患者的康復(fù)干預(yù)方案研究
- 共同體理論下的社區(qū)安全韌性建設(shè)路徑探索與實(shí)踐進(jìn)路
- 礦山節(jié)能技術(shù)-洞察及研究
- 煤礦機(jī)電管理績(jī)效評(píng)價(jià)與改進(jìn)策略
- 歷史焦點(diǎn)人物康熙帝研究
- 自動(dòng)控制技術(shù)的應(yīng)用與發(fā)展故事
- 機(jī)場(chǎng)商業(yè)投訴管理辦法
- 煤礦突發(fā)事故應(yīng)急預(yù)案
- 2023年醫(yī)技類-康復(fù)醫(yī)學(xué)(副高)考試歷年真題薈萃帶答案
- 改進(jìn)維持性血液透析患者貧血狀況PDCA
- 公司崗位職級(jí)管理制度
- 漏肩風(fēng)(肩周炎)中醫(yī)臨床路徑及入院標(biāo)準(zhǔn)2020版
- 光面爆破知識(shí)講座課件
- 高鐵站裝飾裝修方案
- DB4401-T 112.1-2021 城市道路占道施工交通組織和安全措施設(shè)置+第1部分:交通安全設(shè)施設(shè)置-(高清現(xiàn)行)
- 質(zhì)量整改通知單(樣板)
- 杭州市高級(jí)中學(xué)2022年高一新生素質(zhì)測(cè)試(分班考)模擬試卷
- 《碳纖維片材加固混凝土結(jié)構(gòu)技術(shù)規(guī)程》(2022年版)
- 智能建筑項(xiàng)目設(shè)計(jì)方案(模板)
評(píng)論
0/150
提交評(píng)論