淺談設(shè)計(jì)模式_第1頁(yè)
淺談設(shè)計(jì)模式_第2頁(yè)
淺談設(shè)計(jì)模式_第3頁(yè)
淺談設(shè)計(jì)模式_第4頁(yè)
淺談設(shè)計(jì)模式_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

淺談設(shè)計(jì)模式高雪嬌什么是模式?每一個(gè)模式描述了一個(gè)在我們周圍不斷重復(fù)發(fā)生的問(wèn)題,以及該問(wèn)題的解決方案的核心。(ChristopherAlexander,克里斯托夫·亞歷山大)“四人幫”的著作《設(shè)計(jì)模式》什么是設(shè)計(jì)模式?設(shè)計(jì)模式(Designpattern)是一套被反復(fù)用、多數(shù)人知曉的、經(jīng)過(guò)分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。設(shè)計(jì)模式的優(yōu)點(diǎn):可重用代碼讓代碼更容易被他人理解保證代碼可靠性模式的要素:名稱

名字意圖

目的

問(wèn)題

要解決的問(wèn)題解決方案組成部分及職責(zé)、各部分間的相互關(guān)系及協(xié)作方式協(xié)作者

元素(如類和對(duì)象)效果

對(duì)目標(biāo)的支持,使用模式要進(jìn)行的權(quán)衡,獨(dú)立的變化性一般性結(jié)構(gòu)

展示結(jié)構(gòu)的標(biāo)準(zhǔn)圖設(shè)計(jì)模式的原則一:設(shè)計(jì)模式的核心原則是:"開(kāi)-閉"原則(

Open-ClosedPrinciple縮寫:OCP

)開(kāi)閉原則:說(shuō)軟件實(shí)體(類,模塊,函數(shù)等)應(yīng)該可以擴(kuò)展,但是不可以修改.

二:依賴倒轉(zhuǎn)原則

A:高層模塊不應(yīng)該依賴底層模塊B:抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴抽象就是說(shuō)要依賴抽象,而不要依賴具體的實(shí)現(xiàn)..如果說(shuō)開(kāi)閉原則是目標(biāo),依賴倒轉(zhuǎn)原則是到達(dá)"開(kāi)閉"原則的手段..如果要達(dá)到最好的"開(kāi)閉"原則,就要盡量的遵守依賴倒轉(zhuǎn)原則..可以說(shuō)依賴倒轉(zhuǎn)原則是對(duì)"抽象化"的最好規(guī)范!!

通俗的說(shuō)就是只有抽象的東西才是最穩(wěn)定的,也就是說(shuō),我們依賴的是它的穩(wěn)定。馬是抽象的馬,白馬和黑馬是馬的具體子類,一匹白馬,一匹黑馬分別是他們的實(shí)例,如果一個(gè)方法適用于馬,必然適用于黑馬或白馬若有一方法qm(ma)一匹黑馬一匹白馬如果對(duì)每一個(gè)類型為T1的對(duì)象o1,都有類型為T2的對(duì)象o2,使得以T1定義的所有程序P在所有的對(duì)象o1都代換成o2時(shí),程序P的行為沒(méi)有發(fā)生變化,那么類型T2是類型T1的子類型。四:單一職能原則

定義:就一個(gè)類而言,應(yīng)該僅有一個(gè)引起他變化的原因不要把變化原因各不相同的職責(zé)放在一起,因?yàn)椴煌淖兓瘯?huì)影響到不相干的職責(zé)。上邊的都是幾個(gè)原則,下面介紹兩個(gè)法則:(1)迪米特法則:系統(tǒng)中的類,盡量不要與其他類互相作用,減少類之間的耦合度,如果相互作用的越小,則修改起來(lái)的難度就越小..例如A類依賴B類,

則B類依賴C類,當(dāng)你在修改A類的時(shí)候,你要考慮B類是否會(huì)受到影響,而B(niǎo)類的影響是否又會(huì)影響到C類..如果此時(shí)C類再依賴D類的話…..

(2)接口隔離法則:客戶端不應(yīng)該依賴它不需要的接口,意思就是說(shuō)客戶端只要依賴它需要的接口,它需要什么接口,就提供什么接口,不提供多余的接口。問(wèn)題的由來(lái)類A通過(guò)接口I依賴類B,類C通過(guò)接口I依賴類D,如果接口I對(duì)于類A和類B來(lái)說(shuō)不是最小接口,則類B和類D必須去實(shí)現(xiàn)他們不需要的方法。如果將這個(gè)設(shè)計(jì)修改為符合接口隔離原則,就必須對(duì)接口I進(jìn)行拆分。在這里我們將原有的接口I拆分為三個(gè)接口,拆分后的設(shè)計(jì)如圖所示:設(shè)計(jì)模型的分類創(chuàng)建型模式結(jié)構(gòu)型模式行為型模式單例模式抽象工廠模式、建造者模式工廠模式原形模式適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式。

模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解釋器模式、狀態(tài)模式、策略模式、職責(zé)鏈模式、訪問(wèn)者模式。用來(lái)處理對(duì)象的創(chuàng)建過(guò)程用來(lái)處理類或者對(duì)象的組合創(chuàng)建杯子每次勺子生產(chǎn)不同類型的杯子單例模式單例模式擴(kuò)展用途,控制用戶生成的個(gè)數(shù)簡(jiǎn)單工廠唯一性擁有好幾個(gè)勺子專門生產(chǎn)杯具的工廠訂單經(jīng)常變訂單太多處理不方便勺子和杯子搭配賣反射工廠工廠方法抽象工廠需要杯具的類型寫在訂單上(對(duì)應(yīng)程序的配置文

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論