設計模式(C ) 02簡單工廠模式

2021-09-03 08:21:04 字數 2719 閱讀 1836

推薦閱讀:

工廠模式主要是為建立物件提供過渡介面,以便將建立物件的具體過程遮蔽隔離起來。通俗來說,你只關心怎麼用,不用關心怎麼做。

工廠模式可以分為三類:

1.簡單工廠模式(****** factory)

2.工廠方法模式(factory method)

3.抽象工廠模式(abstract factory)

掌握簡單工廠模式是我們學習工廠模式最基礎的條件,只有理解了簡單的,才能更深入的學習。對於剛接觸設計模式的朋友來說,看前一篇單例模式的朋友覺得挺輕鬆,但今天要將的工廠模式可能就不是特別容易消化了。為了讓大家更深刻的理解這個模式,我將給大家展現出乙個有趣的學習過程。

簡單工廠模式又稱靜態工廠方法模式(static factory method)。

簡單工廠模式要素:

①抽象基類:類中定義抽象一些方法,用以在子類中實現,通俗的說就是抽象產品。例:運算類my_opterator

②繼承自抽象基類的子類:實現基類中的抽象方法,通俗的說就是具體的產品。例:加法類addopterator,乘法類mulopertator等

③工廠類:用以例項化物件。例如:factory

下面舉個例子用類圖來介紹一下上面幾個要素之間的關係吧。

實現算術運算:

命名空間簡單工廠模式中包含抽象運算基類my_opterator、四個具體運算類、工廠類factory。本案例將向大家展示如何使用簡單工廠模式來進行不同的算術運算。

**實現過程:

1.建立抽象類my_opterator

abstract class my_opterator                 //演算法類父類

set

}public double b //b屬性

set

}abstract public double getresult(); //抽象方法,獲得結果

}

2.建立繼承抽象類的子類。

class addopterator : my_opterator           //加法類} 

class suboperator : my_opterator //減法類}

class mulopertator : my_opterator //乘法類}

class divoperator : my_opterator //除法類

}

3.建立乙個工廠,生成基於給定資訊的實體類的物件

class factory                                       //簡單工廠類

case "-":

case "*":

case "/":

}m_opt.a = a;

m_opt.b = b;

return m_opt;}}

4.使用該工廠,通過傳遞型別資訊來獲取實體類的物件。

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace 簡單工廠模式}}

從上面**可以發現:系統難以擴充套件,一旦新增新產品就不得不修改簡單工廠方法,這樣就會造成簡單工廠的實現邏輯過於複雜。

整合後的**:

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace 簡單工廠模式

}} class factory //簡單工廠類

case "-":

case "*":

case "/":

}m_opt.a = a;

m_opt.b = b;

return m_opt;

}} abstract class my_opterator //演算法類父類

set

}public double b //b屬性

set

}abstract public double getresult(); //抽象方法,獲得結果}

class addopterator : my_opterator //加法類}

class suboperator : my_opterator //減法類}

class mulopertator : my_opterator //乘法類}

class divoperator : my_opterator //除法類

}

設計模式 簡單工廠模式(C )

一.簡單工廠模式又稱靜態工廠方法模式 static factory method 它不是gof 所講的23種設計模式之一,但是它卻是我們在編碼過程中經常使用的方法之一。1.靜態工廠方法統一管理物件的建立。靜態工廠方法通過傳入的引數判斷決定建立哪乙個產品的例項,封裝了物件的建立,客戶端只管消費,實現了...

C 設計模式 簡單工廠模式

從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種 gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實...

C 設計模式 簡單工廠模式

問題描述 之前在公司做了乙個windows 8平台的閱讀器。首先,需要將電子書中的內容渲染到螢幕上,而電子書每一頁都包含各種各樣的內容,比如 圖形 影象和文字等等 不同的內容,就是不同的物件 在將不同的內容渲染到螢幕上之前,就需要new操作,建立不同的物件,然後再在螢幕上進行描繪。這個時候,就需要進...