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