1. 程式人生 > 其它 >設計模式 - 分類

設計模式 - 分類

GOF-23 模式分類

從目的來看:

  • 建立型(Creational)模式:將物件的部分建立工作延遲到子類或者其他物件,從而應對需求變化為物件建立時具體型別實現引來的衝擊。
  • 結構型(Structural)模式:通過類繼承或者物件組合獲得更靈活的結構,從而應對需求變化為物件的結構帶來的衝擊。
  • 行為型(Behavioral)模式:通過類繼承或者物件組合來劃分類與物件間的職責,從而應對需求變化為多個互動的物件帶來的衝擊。

從範圍來看:

  • 類模式處理類與子類的靜態關係。
  • 物件模式處理物件間的動態關係。

從封裝變化角度對模式分類

元件協作:

  • Template Method
  • Observer / Event
  • Strategy

單一職責:

  • Decorator
  • Bridge

物件建立:

  • Factory Method
  • Abstract Factory
  • Prototype
  • Builder

物件效能:

  • Singleton
  • Flyweight

介面隔離:

  • Façade
  • Proxy
  • Mediator
  • Adapter

狀態變化:

  • Memento
  • State

資料結構:

  • Composite
  • Iterator
  • Chain of Resposibility

行為變化:

  • Command
  • Visitor

領域問題:

  • Interpreter jian

重構獲得模式 Refactoring to Patterns

  • 面向物件設計模式是“好的面向物件設計”,所謂“好的面向物件設計”指是那些可以滿足 “應對變化,提高複用”的設計 。
  • 現代軟體設計的特徵是“需求的頻繁變化”。設計模式的要點是“尋找變化點,然後在變化點處應用設計模式,從而來更好地應對需求的變化”.“什麼時候、什麼地點應用設計模式”比“理解設計模式結構本身”更為重要。
  • 設計模式的應用不宜先入為主,一上來就使用設計模式是對設計模式的最大誤用。沒有一步到位的設計模式。敏捷軟體開發實踐提倡的“Refactoring to Patterns”是目前普遍公認的最好的使用設計模式的方法。

重構關鍵技法

  • 靜態 → 動態
  • 早繫結 → 晚繫結
  • 繼承 → 組合
  • 編譯時依賴 → 執行時依賴
  • 緊耦合 → 鬆耦合