1. 程式人生 > >Java --- 設計模式(23種)

Java --- 設計模式(23種)

一、什麼是設計模式

設計模式(Design Pattern)是一套被反覆使用、多數人知曉的、經過分類的、程式碼設計經驗的總結。設計模式(Design pattern)代表了最佳的實踐,通常被有經驗的面向物件的軟體開發人員所採用。設計模式是軟體開發人員在軟體開發過程中面臨的一般問題的解決方案。這些解決方案是眾多軟體開發人員經過相當長的一段時間的試驗和錯誤總結出來的。

二、設計模式的提出者

GoF(“四人幫”,指Gamma, Helm, Johnson & Vlissides, Addison-Wesley四人)提出的23種設計模式可謂經典,由於其定義比較嚴謹趨於理論化,故剛開始不一定很快掌握,下面簡要對23種設計模式予以簡要介紹,並給出現實中相關的通俗易懂的事例

三、使用設計模式的目的

為了程式碼可重用性、讓程式碼更容易被他人理解、保證程式碼可靠性。 設計模式使程式碼編寫真正工程化;設計模式是軟體工程的基石脈絡,如同大廈的結構一樣。

四、六大設計原則

總原則:
開閉原則
對擴充套件開放,對修改封閉。在不更改原始碼的前提下,進行擴充套件
1、單一職責原則
不要存在多於一個導致類變更的原因,也就是說每個類應該實現單一的職責,否則應該把類拆分。

2、里氏替換原則
任何基類可以出現的地方,子類一定可以實現。子類對父類的方法儘量不要重寫和過載,因為父類代表了定義好的結構,通過此規範的介面與外界互動,子類不應隨便破壞它。

3、依賴倒轉原則


面向介面程式設計,依賴於抽象而不依賴於具體。寫程式碼時用到具體類時,不與具體類互動,而與具體類的上層介面互動。

4、介面隔離原則
每個介面中不存在子類用不到卻必須實現的方法,如果不然,就要將介面拆分。使用多個隔離的介面,比使用單個介面(多個介面方法集合到一個的介面)要好。

5、迪米特法則
一個類對自己依賴的類知道的越少越好。也就是說無論被依賴的類多麼複雜,都應該將邏輯封裝在方法的內部,通過public方法提供給外部。

6、合成複用原則
儘量首先使用合成/聚合的方式,而不是使用繼承。

五、設計模式的分類

1、建立型模式(5種)
單例模式
原型模式
建造者模式
工廠方法模式
抽象工廠模式

2、結構型模式(7種)
代理模式
外觀模式
橋接模式
組合模式
享元模式
介面卡模式
裝飾器模式

3、行為型模式(11種)
策略模式
命令模式
狀態模式
備忘錄模式
訪問者模式
中介者模式
直譯器模式
觀察者模式
迭代器模式
責任鏈模式
模板方法模式