iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
Software Development

也該是時候學學 Design Pattern 了系列 第 29

Day 29: 23 + 1 個模式的總結

Creational patterns - Summary

主旨

「物件導向設計模式」定義為:

將物件具現化的過程抽下樣話地加以萃取,使系統能獨立於物件的建立、組成及表現方式之外。

屬於此類別的模式

此類別的模式專注在如何製作物件。

  • 入門 -> Simple Factory Method
    • 了解使用 switch 產生類別及為一種模式。
  • 初階應用 -> 衍生出子類別(子代)-> Factory Method
    • 需要新的子類別,重新定義、製作即可完成。
  • 進階應用 -> 採取複合策略
    • 用產品物件的種類來定義、生產物件 -> Abstract Factory
    • 定義複雜的生產過程,確保最後能取得複雜的物件 -> Builder
    • 了解、學習如何完整複製物件 -> Prototype
  • 異數 -> 沒有生產物件,確保系統內只存在一個物件 -> Singleton

Structural patterns - Summary

主旨

「物件導向設計模式」定義為:

探討如何以類別(class)和物件的組合成大型的結構。

屬於此類別的模式

此類別的模式往往有特定的使用場合。

  • 解決既有物件之間,介面(對外窗口)不相容的問題 -> Adapter
  • 開發前了解會有多個商業邏輯,因此設計出可以搭配多個商業邏輯的介面 -> Bridge
  • 從單一物件到組織類別的物件都有相同的結構,不用額外添加處理方式 -> Composite
  • 不打算繼承產生子類別好增加新的方法 -> Decorator
  • 使用一個大物件代表整體系統 -> Facade
  • 在乎記憶體使用的效率所以共享物件 -> Flyweight
  • 提供一個間接存取層,可限制、增強、改變幕後物件的屬性 -> Proxy

Behavioral patterns - Summary

主旨

「物件導向設計模式」定義為:

探討物件之間的演算法、權責分配問題以及溝通方式。

屬於此類別的模式

此類別的模式往往帶有強烈的使用目的。

  • 讓多個物件都有機會處理某一訊息,以降低訊息發送者和接收者之間的耦合關係 -> Chain of Responsibility
  • 將行為轉變成物件,以便有儲存、刪除、暫停、復原等操作 -> Command
  • 學習轉化、解譯特定訊息 -> Interpreter
  • 實作 forEach() -> Iterator
  • 將物件之間的溝通集中起來 -> Mediator
  • 使用特定物件「儲存」另一個物件在某個時刻的內部狀態 -> Memento
  • 當多個物件需要「監聽」特定物件的狀態變化 -> Observer
  • 當物件的方法會隨著「自身的狀態」改變執行細節 -> State
  • 當物件的方法會隨著「帶入的參數」不同而有不同的執行細節 -> Strategy
  • 物件大部分的結構、方法都完成,部分方法的細節部分隨著不同的情境而有不同的執行細節 -> Template Method
  • 當有相似結構的「物件們」需要增加相同名稱但是不同執行細節的方法 -> Visitor

上一篇
Day 28: Behavioral patterns - Visitor
下一篇
Day 30: 關於 Design Pattern,來點心理測驗吧
系列文
也該是時候學學 Design Pattern 了31

尚未有邦友留言

立即登入留言