設計模式 - 分類
阿新 • • 發佈:2022-02-04
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”是目前普遍公認的最好的使用設計模式的方法。
重構關鍵技法
- 靜態 → 動態
- 早繫結 → 晚繫結
- 繼承 → 組合
- 編譯時依賴 → 執行時依賴
- 緊耦合 → 鬆耦合