簡述:
建造者模式將乙個複雜的物件構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。
建造者模式包括:指揮者類、抽象建造者類、具體建造者類、具體產品類。
指揮者類:構建乙個使用抽象建造者介面的物件。
抽象建造者類:為建立乙個具體產品類物件的各個部件指定的抽象介面。
具體建造者類:實現抽象建造者類介面,構造和裝配各個部件。
具體產品類:具體產品。
建造者模式**:
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...