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(單例模式)
上榜理由:改善全域性變數和命名空間的衝突,可以說是一種改良了的全域性變數。這種乙個類只有乙個例項,且提供乙個訪問全域性點的方式,更加靈活的保證了例項的建立和訪問約束。
java 23種設計模式中常用的九種
1 factory pattern 工廠模式 上榜理由 將程式中建立物件的操作,單獨出來處理,大大提高了系統擴充套件的柔性,介面的抽象化處理給相互依賴的物件建立提供了最好的抽象模式。2 facade pattern 上榜理由 將表現層和邏輯層隔離,封裝底層的複雜處理,為使用者提供簡單的介面,這樣的例...
Java23種設計模式
定義 設計模式 design pattern 是一套反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。單例模式,特點 全域性只有乙個例項。定義 單例模式,也叫單子模式,是一種常用的軟體設計模式。在應用這個模式的時候,單例物件的類必須...
Java23種設計模式
建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。結構型模式,共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。行為型模式,共十一種 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄模 式 狀態模式 訪問者模式 中...