設(shè)計(jì)模式的好處有很多,設(shè)計(jì)模式是一套被反復(fù)使用,經(jīng)過(guò)分類編目的代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié),使用設(shè)計(jì)模式是為了成功的設(shè)計(jì)和體系結(jié)構(gòu)
服用相似問(wèn)題的相同解決方案。保證了代碼的可靠性,是代碼的編制真正的工程化,能夠適應(yīng)需求的變化。
里氏替換原則,如果一個(gè)軟件實(shí)體使用一個(gè)父類的話,那么一定適用于子類。定義就是子類必須能夠替換它的父類。
迪米特法則:他強(qiáng)調(diào)的是類之間的松耦合,耦合度越低越有利于復(fù)用,一個(gè)處在弱耦合的類被修改,不會(huì)對(duì)有關(guān)系的類造成影響。
1.簡(jiǎn)單工廠模式:將業(yè)務(wù)邏輯部分和界面邏輯部分分離開來(lái),降低了業(yè)務(wù)邏輯部分和界面邏輯部分的耦合度,符合面向?qū)ο蟮牡厦滋胤▌t。
2.工廠模式:定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪一個(gè)類。工廠方法使一個(gè)類的實(shí)例化延遲到了子類。
3.抽象工廠模式;提供一個(gè)創(chuàng)建一系列相關(guān)或者相互依賴的對(duì)象的接口,而無(wú)需指定他們具體的類。
4.職責(zé)鏈設(shè)計(jì)模式(chain ofresponsibility):使多個(gè)對(duì)象都有處理請(qǐng)求的機(jī)會(huì),從而避免了請(qǐng)求的發(fā)送者和接受者之間的耦合關(guān)系,將所有的處理對(duì)象連成一條鏈,
并沿著這條鏈傳遞請(qǐng)求,直到有一個(gè)對(duì)象能夠處理它為止。
5.單身設(shè)計(jì)模式:(singleton);保證一個(gè)類僅僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)他的全局訪問(wèn)點(diǎn),通常我們可以讓一個(gè)全局變量使得一個(gè)對(duì)象被訪問(wèn),但他不能防止你
實(shí)例化多個(gè)對(duì)象,一個(gè)最好的方法就是,讓類自身保護(hù)它唯一的實(shí)例,這個(gè)類可以保證它沒有其他的實(shí)例被創(chuàng)建,并且它可以提供一個(gè)訪問(wèn)該實(shí)例的方法。
6.適配器設(shè)計(jì)模式:(Adapter):講一個(gè);類的接口轉(zhuǎn)化為客戶希望的另一個(gè)接口,Adapter模式使得原來(lái)接口不兼容而不能一起工作的那些類可以一起工作了。
7.裝飾設(shè)計(jì)模式:(Decorator):動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。即增加功能來(lái)說(shuō),裝飾模式比生成子類更為靈活。
8.代理模式:(Proxy):為其他對(duì)象提供一種代理以達(dá)到控制這個(gè)對(duì)象的訪問(wèn)。
9.觀察者設(shè)計(jì)模式:又稱發(fā)布--訂閱模式,定義了一個(gè)一對(duì)多的依賴關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽某一個(gè)主題對(duì)象,這個(gè)主題對(duì)象在狀態(tài)發(fā)生變化時(shí),會(huì)通知所有的
觀察者對(duì)象,使他們能夠自動(dòng)的進(jìn)行更新。
10.狀態(tài)設(shè)計(jì)模式:當(dāng)一個(gè)對(duì)象的內(nèi)在狀態(tài)發(fā)生改變時(shí)允許改變其行為,這個(gè)對(duì)象看起來(lái)像是改變了類,狀態(tài)模式主要解決的是當(dāng)控制一個(gè)對(duì)象轉(zhuǎn)換的條件表達(dá)式過(guò)于復(fù)雜的
情況。把狀態(tài)的判斷邏輯轉(zhuǎn)移到表示不同狀態(tài)的的一系列的類中,可以把復(fù)雜的邏輯簡(jiǎn)化。好處是將特定狀態(tài)的相關(guān)行為局部化,且將不同狀態(tài)的行為分割開來(lái)。
11.命令設(shè)計(jì)模式:命令設(shè)計(jì)模式的作用是將一個(gè)請(qǐng)求封裝成一個(gè)對(duì)象,從而使我們可以用不同的請(qǐng)求對(duì)象進(jìn)行參數(shù)化,對(duì)請(qǐng)求排隊(duì)或者是請(qǐng)求記錄日志,以及支持科撤銷的
操作,命令模式將調(diào)用操作的請(qǐng)求對(duì)象與知道如何實(shí)現(xiàn)改操作的接受對(duì)象解耦,
12.模板設(shè)計(jì)模式:定義一個(gè)算法骨架,而且將一些步驟延遲到子類中,模板方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重新定義算法的特定步驟。
13橋接設(shè)計(jì)模式;將抽象部分與它的現(xiàn)實(shí)部分想分離,使它們可以獨(dú)立的變化,橋接設(shè)計(jì)模式可以避免“類爆炸”的情況
14.策略設(shè)計(jì)模式:定義了一個(gè)算法家庭,分別把他們都封裝起來(lái),讓他們之間可以相互替換,這些算法的替換變化不會(huì)影響到使用算法的客戶。
15組合設(shè)計(jì)模式;將對(duì)象組合成樹的結(jié)構(gòu)以表示“部分--與整體”的的層次結(jié)構(gòu),組合模式使得單個(gè)用戶對(duì)單個(gè)對(duì)象的使用具有一致性。
16.原型設(shè)計(jì)模式:用原型的實(shí)例指定創(chuàng)建類的總類,并且通過(guò)拷貝這個(gè)原型來(lái)創(chuàng)建的新的對(duì)象。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。