工廠方法模式

Factory Method Pattern

簡單工廠的延伸,不再提供統一的工廠類來建立所有物件,而是將Factory類別抽象化,針對不同分類的物件有不同的工廠

Example: 運輸系統


工廠方法模式會將類別分為兩類:
分別是工廠類別 (Creator)產品類別 (Product)

透過定義好的介面,讓類別的實例化延遲到子類中進行。


優點:
將創建物件的邏輯與物件本身的邏輯分離。
一個工廠只會對應一個類別,完全遵守了開放封閉原則

缺點:
會做出很多小類別。
(每次新增產品類別,就得新增對應的工廠類別)

與其他模式的比較:
[簡單工廠模式]: 
比起簡單工廠模式,工廠方法模式能在創建物件時,將複雜的創建邏輯處理地更好。

[樣板方法模式]:
工廠方法模式,是一個迷你的樣板方法模式,
它只提出了建造類別這個步驟。

ʕ •ᴥ•ʔ:將開放封閉原則展現的淋漓盡致!