建造者模式:將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程建立不同的表示。
與工廠模式不同,建造者模式是在導向者的控制下一步一步構造產品的。建立者模式可以能更精細的控制構建過程,從而能更精細的控制所得產品的內部結構。
對於客戶來說,只需知道導向者就可以了,通過導向者,客戶就能構造複雜的物件,而不需要知道具體的構造過程。下面給出小人例子的**實現。
1class
builder 25
virtual
void
buildbody() {}
6virtual
void
buildleftarm(){}
7virtual
void
buildrightarm() {}
8virtual
void
buildleftleg() {}
9virtual
void
buildrightleg() {}
10};
11//
構造瘦人
12class thinbuilder : public
builder
1316
void buildbody()
17void buildleftarm()
18void buildrightarm()
19void buildleftleg()
20void buildrightleg()
21};
22//
構造胖人
23class fatbuilder : public
builder
2427
void buildbody()
28void buildleftarm()
29void buildrightarm()
30void buildleftleg()
31void buildrightleg()
32};
33//
構造的指揮官
34class
director
3540
void
create()
48 };
客戶端:
1intmain()
2
設計模式 建造者 生成器
生成器模式,也叫建造者模式。有人說後者是想強調該模式重點是強調建造過程,而不是生成。個人比較認同,所以後文也叫建造者模式。建造者模式,主要意圖是將物件的建造於他的表示分離。從而使得同樣的建造過程可以建造出不同的產品。參與者有建造者,導演和具體的產品。舉例說明,我們想生產電腦,電腦就是產品。宣告乙個類...
建造者模式(生成器模式)
1.將複雜的物件的構建與其表示分離,使同樣的構建過程可以有不同的表示 如下 父類抽象,採用模板方法模式,定義一系列演算法,抽象,定義一模板,由sequence 動態決定演算法是否執行 子類將繼承該類並實現3個演算法 abstract class design mode builder pattern...
生成器(建造者)模式
意圖 將乙個複雜物件的構造與它的表示分離,使得同樣的構建過程可以建立不同的表示。情景 生產不同規格的電腦。規格一,規格二 關鍵點 product 具體產品 表示被構造的複雜物件。builder 抽象構建產品 為建立乙個產品物件的各種部件指定抽象介面。builderimpl 抽象構建的具體實現 實現b...