回覆列表
  • 1 # Java實戰技術

    設計模式是對普遍出現的一類問題的解決方案的總結,是前人的經驗與設計總結。

    設計模式不要一開始就強追著用,為了使用設計模式而使用,應該在某些問題出現的時候使用對應的策略,達到解決遇到的問題,這樣才可以用好。

  • 2 # Andoter的學習筆記

    從兩個方面來談下我的理解:

    懂設計模式

    如何很好的運用Java設計模式?用的前提是懂設計模式。懂是前提,不懂何來的用!

    我們都知道GOF提出了針對Java程式設計非常有經驗的23條設計模式,透過對實際開發中出現的問題進行高度概括總結而來,透過不斷的完善,最後演變到我們熟悉的23種經典場景對應的23種設計模式。

    這23中涉及模式設計的場景可以概括為:建立物件場景、物件與類的組合結構場景、物件與物件之間通訊的物件行為型場景。

    非常實用的23種場景。具體可以參見我關於設計模式的一個問答。抽取一部分:

    建立型模式:建立物件場景

    建立型模式提供了一種在建立物件的同時隱藏建立邏輯的方式,而不是使用 new 運算子直接例項化物件。這使得程式在判斷針對某個給定例項需要建立哪些物件時更加靈活。

    工廠模式(Factory Pattern):透過工廠模式來建立物件,避免客戶端建立物件,適用於單一產品物件建立。

    抽象工廠模式(Abstract Factory Pattern):使用與多種產品族的情況下,進行設計物件產品建立、擴充套件。

    單例模式(Singleton Pattern):保證一個類只有一個例項的情況

    建造者模式(Builder Pattern):適用建立物件引數過多的情況

    原型模式(Prototype Pattern):建立物件過於負責,透過clone來提高建立物件的效率。

    結構型模式:物件與類的組合結構場景

    結構型模式關注類和物件的組合。繼承的概念被用來組合介面和定義組合物件獲得新功能的方式。

    介面卡模式(Adapter Pattern):動態適配介面的實現,滿足客戶端的使用,不修改客戶端前提下,完成介面適配

    橋接模式(Bridge Pattern):抽象和實現進行解耦

    過濾器模式(Filter、Criteria Pattern):過濾物件使用

    組合模式(Composite Pattern):適用於客戶端統一處理葉子和枝幹部分

    裝飾器模式(Decorator Pattern):動態擴充套件類的功能

    外觀模式(Facade Pattern):針對多個子系統,提供統一的訪問方式

    享元模式(Flyweight Pattern):適用於減少微小物件的建立,透過快取進行。

    代理模式(Proxy Pattern):不能直接訪問某類,透過代理進行

    行為型模式:物件與物件之間通訊的物件行為型場景

    行為型模式特別關注物件之間的通訊。

    責任鏈模式(Chain of Responsibility Pattern):避免請求者和接受者耦合,接受者過多情況

    命令模式(Command Pattern):將一個請求封裝成一個物件,從而使您可以用不同的請求對客戶進行引數化。

    直譯器模式(Interpreter Pattern)

    迭代器模式(Iterator Pattern):迭代訪問物件

    中介者模式(Mediator Pattern):透過中介者來封裝使用者訪問

    備忘錄模式(Memento Pattern):對狀態進行儲存,可以再次進行恢復

    觀察者模式(Observer Pattern):訂閱/釋出者模式,主要用於訊息通知

    狀態模式(State Pattern):根據狀態進行執行動作切換

    空物件模式(Null Object Pattern)

    策略模式(Strategy Pattern):根據不同的演算法策略執行

    模板模式(Template Pattern):預留模版,動態擴充套件

    訪問者模式(Visitor Pattern)

    用設計模式

    經過學習,你對涉及模式有了一個概括性的瞭解,也知道每個設計模式使用的場景,這時你就可以針對自己實際工作的業務分析,找到比較合適的模式來使用,但是千萬注意設計模式是一套經驗總結,不能為了模式而模式,為了設計模式而設計模式就是本末倒置了。

  • 中秋節和大豐收的關聯?
  • 為什麼NBA中火箭隊的保羅不是全明星?