009 第13章 建造者模式

2022-07-17 03:15:11 字數 2856 閱讀 8465

簡述:

建造者模式將乙個複雜的物件構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。

建造者模式包括:指揮者類、抽象建造者類、具體建造者類、具體產品類。

指揮者類:構建乙個使用抽象建造者介面的物件。

抽象建造者類:為建立乙個具體產品類物件的各個部件指定的抽象介面。

具體建造者類:實現抽象建造者類介面,構造和裝配各個部件。

具體產品類:具體產品。

建造者模式**:

1 #include 2 #include 3 #include 

4using

namespace

std;56

7//建造者模式8//

具體產品類

9class

cproduct

1019

20void

show()

2126

};27

28//

抽象建造者類

29class

cbuilder30;

33virtual

void

buildpartb() {};

34 cproduct*getresult() {};

35};

3637

//具體建造者類

38class cconcretebuilder1 : public

cbuilder

3948

49 ~cconcretebuilder1()

5056}57

58void

buildparta()

5962

63void

buildpartb()

6467

68 cproduct*getresult()

6972

};73

74//

具體建造者類

75class cconcretebuilder2 : public

cbuilder

7685

86 ~cconcretebuilder2()

8793}94

void

buildparta()

9598

99void

buildpartb()

100103

104 cproduct*getresult()

105108

};109

110//

指揮者類

111class

cdirector

112119

};120

121int

main()

122

輸出結果:

例:畫小人

**如下:

1 #include 2 #include 3 #include 

4using

namespace

std;56

//抽象建造者類

7class

cpersonbuilder8;

11virtual

void

buildbody() {};

12virtual

void

buildarmleft() {};

13virtual

void

buildarmright() {};

14virtual

void

buildlegleft() {};

15virtual

void

buildlegright() {};

16};

1718

//具體建造者類

19class cpersonthinbuilder : public

cpersonbuilder

2026

27void

buildbody()

2831

32void

buildarmleft()

3336

37void

buildarmright()

3841

42void

buildlegleft()

4346

47void

buildlegright()

4851

};52

53//

具體建造者類

54class cpersonfatbuilder : public

cpersonbuilder

5561

62void

buildbody()

6366

67void

buildarmleft()

6871

72void

buildarmright()

7376

77void

buildlegleft()

7881

82void

buildlegright()

8386

};87

88//

指揮者類

89class

cpersondirector

9099

100void

createperson()

101109

};110

111int

main()

112

輸出結果:

第 10 章 建造者模式

header content type text html charset utf 8 建造者模式 又是乙個週三,快要下班了,老大突然又拉住我,喜滋滋的告訴我 牛叉公司很滿意我們做的模型,又簽訂了乙個合同,把賓士 寶馬的車輛模型都交給我我們公司製作了,不過這次又額外增加了乙個新需 求 汽車的啟動 停...

大話設計模式學習筆記(13) 建造者模式

原始碼git位址 捏兩個小人乙個胖乙個瘦。必須要有頭 身體 四肢。這個場景的主要特點在於我們需要保證這個小人的穩定性,即必須保證有客戶端在建造小人的時候有頭 身體 四肢三個部分。所以把各個部分的建造放在客戶端一定是不合適的 客戶端執行的 越多,越容易出錯 建造者模式 package builder ...

建造者模式

1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...