iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
1
Software Development

你終究都要學設計模式的,那為什麼不一開始就學呢?系列 第 20

Day20. 工廠方法模式

本文同步更新於blog

Factory Method Pattern

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


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

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


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

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

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

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

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


上一篇
Day19. 範例:才藝表演(轉接頭模式)
下一篇
Day21. 範例:運輸系統(工廠方法模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言