工廠方法模式

2022-06-02 12:45:17 字數 2509 閱讀 6422

什麼是工廠方法模式?

定義乙個建立產品物件的工廠介面(ifactory),將實際建立工作推遲到子類(addfactory、subfactory、mulfactory、divfactory)當中。

核心工廠類(ifactory)不再負責產品的建立,僅作為乙個抽象(有純虛方法)工廠角色,只負責宣告具體工廠子類

必須實現的介面(即純虛方法)。

這樣進一步抽象化的好處:系統在不需要修改具體工廠角色的情況下引進新的產品(與簡單工廠模式相比)。

工廠方法模式**示例

示例**如下:

1 #include 

2 #include 3

using

namespace

std;45

class

operation616

17void setnumbera(double

dvalue)

1821

22double

getnumberb()

2326

27void setnumberb(double

dvalue)

2831

32virtual

double

getresult()

3336

};37

38class addoperation : public

operation

3945

};46

47class suboperation : public

operation

4854

};55

56class muloperation : public

operation

5763

};64

65class divoperation : public

operation

6672

};73

74class

ifactory75;

7980

class addfactory : public

ifactory

8187

};88

89class subfactory : public

ifactory

9096

};97

98class mulfactory : public

ifactory

99105

};106

107class divfactory : public

ifactory

108114

};115

116void

main()

117128

129//

run out:

130/*

131891

132請按任意鍵繼續. . .

133*/

工廠方法模式示例**

**如下:

1 #include 

2 #include 3

using

namespace

std;45

//抽象產品類1

6class

iuser7;

1213

//具體產品類1(sqluser)

14class sqluser : public

iuser

1521

void

setuser()

2225

};26

27//

具體產品類1(accessuser)

28class accessuser : public

iuser

2935

void

setuser()

3639

};40

41//

抽象工廠類

42class

ifactory43;

4748

//具體工廠類(sqlfactory)

49class sqlfactory : public

ifactory

5056

};57

58//

具體工廠類(accessfactory)

59class accessfactory : public

ifactory

6066

};67

68void

main()

6987

88//

run out:

89/*

90在sql中返回user

91在sql中設定user

92在access中返回user

93在access中設定user

94請按任意鍵繼續. . .

95*/

以上**主要與《抽象工廠模式》對比,為了更好的理解兩者之間的區別。

good good study, day day up.

順序 選擇 迴圈 總結

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...

工廠方法模式 工廠方法模式 二

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...