簡單工廠模式,又稱為靜態工廠模式(Static Factory),屬於『創建型模式』。
目的
透過一個專門的類別,來創建其他類別的實體(通常繼承同一個父類別)
角色
- 工廠(Factory):負責創建所有實體。
- 抽象產品(AbstractProduct):一般為具體產品的父類別
- 具體產品(ConcreteProduct):繼承抽象產品,並由工廠創建出實體
優點
- 客戶端只需選產品,如何製造出來由工廠控制。
- 變更與新增具體產品,不需動到客戶端。
缺點
- 所有創建都於工廠,若無法正常使用,會影響整個系統
- 變更與新增產品就要修改工廠,若產品多會讓工廠過於複雜,不利維護與擴展
UML
實際範例:計算器
- 抽象產品:Operation
1 |
|
- 具體產品: +-*/
1 |
|
- 工廠
1 |
|
- 使用方式
1 |
|