天天看點

設計模式

  沒有什麼設計模式是完美無缺的,一個設計模式就是解決一類的問題,通常設計模式在解決一類問題的同時,還會帶來别的問題,我們設計者要做的事,就是揚長避短。

1、建立型設計模式,5個===》關注對象的建立

2、結構型設計模式,7個===》關注類與類之間的關系

3、行為設計模式,11個====》關注對象和行為的分離

  設計模式六大原則:單一職責、裡氏替換原則、依賴倒置原則、迪米特法則、接口隔離原則、開閉原則。這些隻能叫原則,是建議,沒有實際的招數。

  面向對象23中設計模式:

    面向對象語言開發過程中,遇到的種種場景和問題,提出了解決方案和思路,沉澱下來就變成了設計模式。

1、建立型設計模式:關注對象的建立

  單例模式:

    就是限制了對象的建立,重用了對象

  原型模式:

    換個方式建立對象,不走構造函數,而是記憶體拷貝

  三大工廠:

    簡單工廠:不直接new出來,把對象建立移到工廠,簡單工廠不屬于23種設計模式

    工廠方法:轉移對象的建立,留下了擴充空間

    抽象工廠:屏蔽對象的建立;限制強制保障産品簇;建立對象,建立一組密不可分的對象。

2、結構型設計模式:關注類與類之間的關系

  縱向關系:繼承≈實作,超強關聯

  橫向關系:組合>聚合>關聯>依賴

    依賴:出現在方法内部。

  組合優于繼承,結構型設計模式的核心。

  擴充卡模式:

    解決重構的問題,新東西和舊系統不吻合,通過繼承/組合進行适配。

  代理模式:

    通過代理完成對業務的通路,包一層友善任意功能的擴充

  裝飾器模式:

    結構型設計模式巅峰之作,組合+繼承,通過組合+繼承,完成對象功能動态擴充。

  外觀模式(門面模式)

  組合模式

  橋接模式

  享元模式

  多種設計模式,其實就是組合包一層,然後加功能。解決不同的問題,然後有不同的側重點,也有不同的規範。

3、行為型設計模式:關注對象和行為的分離

  核心:甩鍋大法,把鍋丢出去,隻管自己,把不穩定的地方移出去,自己隻謝文鼎的,能保證自身的穩定。

  模闆方法設計模式:

    在基類中定義流程,把可變邏輯分離到不同子類實作

  觀察者模式:

    一個對象動作觸發多個對象的行為,通過觀察者可以去掉對象的依賴,支援各種已定義和擴充

  責任鍊設計模式:

    把請求的處理流程,沿着鍊子順序執行,還允許鍊子的擴充和定制

  政策模式、疊代器模式........

很多時候,可能會融合應用多個設計模式,分别解決對應的問題。

繼續閱讀