一、簡單工廠
定義:由一個工廠對象決定創建出哪一種產品類的實例
類型:創建型,但不屬於GOF23種設計模式
適用場景:
- 工廠類負責創建的對象比較少
- 客戶端應用層只知道傳入工廠類的參數對於如何創建對象不關心
優點:只需要傳入一個正確的參數,就可以獲取你所需要的對象,而無須知道其創建細節
缺點:工廠類的職責相對過重,增加新的產品,需要修改工廠類的判斷邏輯,違背開閉原則
com.dzx.design.creational.simplefactory 包下代碼: 簡單工廠
二、工廠方法
定義:定義一個創建對象的接口,但讓實現這個接口的類來決定實例化哪個類,工廠方法讓類的實例化推遲到子類中進行
類型:創建型
適用場景:創建對象需要大量重複的代碼,客戶端應用層不依賴於產品類實例如何被創建、實現等細節,一個類通過其子類來指定創建哪個對象
優點:用戶只需要關心所需產品對應的工廠,無須關心創建細節,加入新產品符合開閉原則,提高可擴展性
缺點:類的個數容易過多,增加複雜度,增加了系統的抽象性和理解難度
coding:.....