簡單工廠,抽象工廠,工廠方法區別

1.簡單工廠:設計模式

簡單工廠模式也叫靜態工廠模式,在工廠類中包含了邏輯判斷,根據客戶端的選擇來動態建立實例,去除了客戶端對具體產品的依賴。可是若是須要添加新的產品,就須要修改工廠類,因此簡單工廠違背了設計模式中的開閉原則,因此說簡單工廠並不屬設計模式。ide

構成:spa

一個包含邏輯判斷的具體工廠類;設計

一個抽象產品類,能夠派生多個具體的產品類。code

 public class OperationFactory
    {
        /// <summary>
        /// 根據傳入的參數,建立對應的實例
        /// </summary>
        /// <param name="operate">計算符號,加減乘除</param>
        /// <returns>返回對應的實例</returns>
        public static Operation getOperation(string operate) {
            Operation operation = null;
            switch (operate)
            {
                case "+":
                    operation = new 加法();
                    break;
                case "-":
                    operation = new 減法();
                    break;
                case "*":
                    operation = new 乘法();
                    break;
                case "/":
                    operation = new 除法();
                    break;
            }
            return operation;
        }
    }
View Code

 

 

2.工廠方法模式:對象

定義一個抽象工廠類,在這個抽象工廠類中負責制定一些規範,將實際建立產品工做放到到子類當中。核心工廠類再也不負責產品的建立,這樣核心類成爲一個抽象工廠角色,僅負責具體工廠子類必須實現的接口,相對於簡單工廠來講能夠使系統在不修改工廠的狀況下,引進新的產品。每一個具體工廠類只能建立一個具體產品類的實例。blog

 

構成:接口

一個抽象產品類,能夠派生出多個具體產品類。get

一個抽象工廠類,能夠派生出多個具體工廠類。

string

 

 

 

3.抽象工廠模式

 

 

抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。抽象工廠模式能夠向客戶端提供一個接口,使客戶端在沒必要指定產品的具體的狀況下,建立多個產品族中的產品對象。相對於工廠方法模式來講,抽象工廠有多個抽象產品類,每一個具體工廠類能夠建立多個具體產品類的實例。而不是像工廠方法那樣,一個工廠只能建立一個產品。

 

構成:

多個抽象產品類,每一個抽象產品類能夠派生出多個具體產品類。

一個抽象工廠類,能夠派生出多個具體工廠類。

相關文章
相關標籤/搜索