iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
1

本文同步更新於blog

Abstract Factory Pattern

提供一個接口,用於創建相關或依賴對象的家族,而不需要明確指定具體類。即產品增加產品族的概念。


抽象工廠模式會將類別分為兩類:
分別是工廠類別 (Creator)產品類別 (Product)
兩者皆有對應的抽象介面。

不同類型的產品結盟成產品族


優點:

  1. 將創建物件的邏輯與物件本身的邏輯分離。
  2. 一個工廠只會對應一個產品族類別,遵守開放封閉原則

缺點:

  1. 會使程式碼變得複雜。
  2. 不容易替產品族新增新的產品。(須修改抽象工廠介面)

與其他模式的比較:
[簡單工廠模式]:
簡單工廠模式僅擁有一個工廠
透過switch子句,創建同種類型不同產品

無法遵守開放封閉原則

[工廠方法模式]: 
工廠方法模式擁有多個工廠
各個工廠創建同種類型不同產品


抽象工廠模式則是擁有多個工廠
各個工廠創建多種類型的產品。
不同類型的產品,有著一條隱密的線,形成產品族的關係。

ʕ •ᴥ•ʔ:把你學會的S.O.L.I.D同時發揮出來。


上一篇
Day27. 範例:Line群組通知(觀察者模式)
下一篇
Day29. 範例:運輸系統 (抽象工廠模式)
系列文
你終究都要學設計模式的,那為什麼不一開始就學呢?57
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言