1. 程式人生 > >設計模式:工廠方法模式

設計模式:工廠方法模式

left 實例 設計模式 設計 通過 耦合度 creat margin 增加

一、簡單工廠模式

1、內容

不直接向客戶端暴露對象創建的實現細節,而是通過一個工廠類來負責創建產品類的實例

2、角色

1、工廠角色(Factory)

2、抽象產品角色(Product)

3、具體產品角色(Concrete Product)

3、優點

隱藏了對象創建的實現細節,客戶端不需要修改代碼

4、缺點

違反了單一職責原則,將創建邏輯幾種到一個工廠類裏,當添加新產品時,需要修改工廠類代碼,違反了開閉原則

二、工廠方法模式

1、內容

定義一個用於創建對象的接口(工廠接口),讓子類決定實例化哪一個產品類。

2、角色

1、抽象工廠角色(Creator)

2、具體工廠角色(Concrete Creator)

3、抽象產品角色(Product)

4、具體產品角色(Concrete Product)

3、優點

1、每個具體產品都對應一個具體工廠類,不需要修改工廠類代碼

2、工廠類可以不知道它所創建的對象的類

3、隱藏了對象創建的實現細節

4、缺點

  每增加一個具體產品類,就必須增加一個相應的具體工廠類

5、適用場景

1、需要生產多種、大量復雜對象的時候

2、需要降低耦合度的時候

3、當系統中的產品種類需要經常擴展的時候

三、抽象工廠模式

1、內容

2、角色

3、優點

4、缺點

設計模式:工廠方法模式