設計模式快速參考-工廠方法模式
設計模式快速參考-單例模式
設計模式快速參考-適配器模式
設計模式快速參考-組合模式
設計模式快速參考-外觀模式
設計模式快速參考-代理模式
設計模式快速參考-命令模式
設計模式快速參考-觀察者模式
設計模式快速參考-策略模式
設計模式快速參考-模板方法模式
設計模式快速參考-參觀者模式
附上原則篇
設計軟件的幾個原則,這個也是設計模式的精髓所在:
1.開-閉原則
1).客戶的需求是不穩定的,通過擴展已有的軟件系統而不是通過修改軟件系統來滿足客戶的需求,這樣的軟件系統就滿足開-閉原則,即軟件系統要有一定的靈活性和適應性。
2).已有的模塊,特別是抽象層的模塊不能修改,保證軟件系統的穩定性和延續性。
解決問題的關鍵是抽象化,把它與具體實現分離開來。接口(interface),抽象類的應用
對可變性封裝:將可變性封裝到一個對象裏。
2.抽象類
抽象類不會有實例,一般作爲父類爲子類繼承,一般包含這個系的共同屬性和方法。
注意:好的繼承關係中,只有葉節點是具體類,其他節點應該都是抽象類,也就是說具體類
是不被繼承的。將儘可能多的共同代碼放到抽象類中。
3.里氏代換原則
在有基類出現的地方,子類均可以替代。
當兩個具體類關係違反里氏代換原則時,一種辦法是抽象出一個基類,作爲這兩個類的父類,
一種是應用組合聚合關係建立關係。
不要爲了使用某些類的方法(功能)而濫用繼承。
4 依賴倒轉原則
抽象不應該依賴與細節,細節應當依賴與抽象。
要針對接口編程,而不是針對實現編程。
傳遞參數,或者在組合聚合關係中,儘量引用層次高的類。
主要是在構造對象時可以動態的創建各種具體對象,當然如果一些具體類比較穩定,就不必在弄一個抽象類做它的父類,這樣有畫舌添足的感覺
5 接口隔離原則
定製服務的例子,每一個接口應該是一種角色,不多不少,不幹不該乾的事,該乾的事都要幹
6 合成/聚合原則
儘量使用合成聚合原則,少用慎用繼承。
合成:一榮俱榮,一損俱損,整體和部分的生命週期是一樣的
聚合:部分可以是整體的一部分,也可以脫離整體而存在。
區分Has a和Is a的問題
7 迪米特法則
最少知識原則。不要和陌生人說話。