常用的9中設計模式

2021-05-28 10:10:38 字數 1210 閱讀 3120

1 factory pattern(工廠模式)

上榜理由:將程式中建立物件的操作,單獨出來處理,大大提高了系統擴充套件的柔性,介面的抽象化處理給相互依賴的物件建立提供了最好的抽象模式。

2 facade pattern

上榜理由:將表現層和邏輯層隔離,封裝底層的複雜處理,為使用者提供簡單的介面,這樣的例子隨處可見。門面模式很多時候更是一種系統架構的設計,在我所做的專案中,就實現了門面模式的介面,為複雜系統的解耦提供了最好的解決方案。

3 command pattern

上榜理由:將請求封裝為物件,從而將命令的執行和責任分開。通常在佇列中等待命令,這和現實多麼的相似呀。如果你喜歡發號施令,請考慮你的icommond吧。

4 strategy pattern

上榜理由:策略模式,將易於變化的部分封裝為介面,通常strategy 封裝一些運算法則,使之能互換。bruce zhang在他的部落格中提到策略模式其實是一種「面向介面」的程式設計方法,真是恰如其分。

5 iterator pattern

上榜理由:相信任何的系統中,都會用到陣列、集合、鍊錶、佇列這樣的型別吧,那麼你就不得不關心迭代模式的來龍去脈。在遍歷演算法中,迭代模式提供了遍歷的順序訪問容器,gof給出的定義為:提供一種方法訪問乙個容器(container)物件中各個元素,而又不需暴露該物件的內部細節。.net中就是使用了迭代器來建立用於foreach的集合。

6 adapter pattern

上榜理由:在原型別不做任何改變的情況下,擴充套件了新的介面,靈活且多樣的適配一切舊俗。這種打破舊框框,適配新格局的思想,是物件導向的精髓。以繼承方式實現的類的adapter模式和以聚合方式實現的物件的adapter模式,各有千秋,各取所長。看來,把它叫做包裝器一點也不為過,

7 observer pattern

上榜理由:定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時, 所有依賴於它的物件都得到通知並被自動更新。觀察者和被觀察者的分開,為模組劃分提供了清晰的界限。在.net中使用委託和事件可以更好的實現觀察者模式,事件的註冊和撤銷不就對應著觀察者對其物件的觀察嗎?

8 bridge pattern

上榜理由:把實現和邏輯分開,對於我們深刻理解物件導向的聚合復用的思想甚有助益。

9 singleton pattern(單例模式)

上榜理由:改善全域性變數和命名空間的衝突,可以說是一種改良了的全域性變數。這種乙個類只有乙個例項,且提供乙個訪問全域性點的方式,更加靈活的保證了例項的建立和訪問約束。

設計模式 9 設計模式

文章 head first 第一章 head first 設計模式讀書筆記 1 策略模式 觀察者模式 head first設計模式學習2 裝飾者模式 head first 設計模式3 工廠模式 head first設計模式4 命令模式 head first 設計模式5 介面卡模式和外觀模式 head...

設計模式 9 模板模式

原理 在乙個方法中定義了乙個演算法的骨架或者步驟,而將一些步驟延遲到子類中去實現 模板方法可以使得子類在不改變演算法結構的情況下,重新定義演算法中某一些步驟 模板方法中的方法可以分為兩類 模板方法和基本方法 基本方法又可以分為抽象方法 具體方法 鉤子方法 模板方法 乙個模板方法是定義在抽象類中的,把...

設計模式9 外觀模式

將類與類之家的依賴關係放在乙個facade類中,降低了類類之間的耦合度,該模式中沒有涉及到介面 實現類1 public class cpu public void shutdown 實現類2 public class memory public void shutdown 實現類3 public c...