建造者模式

2022-06-02 12:39:08 字數 2636 閱讀 2259

什麼是建造者模式?

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

建造者模式**示例:

**示例1:

1 #include 

2 #include 3 #include 4

using

namespace

std;56

class

person7;

1415

class thinperson : public

person16;

2223

void

thinperson::createhead()

2427

void

thinperson::createhand()

2831

void

thinperson::createbody()

3235

void

thinperson::createfoot()

3639

40class fatperson : public

person41;

4748

void

fatperson::createhead()

4952

void

fatperson::createhand()

5356

void

fatperson::createbody()

5760

void

fatperson::createfoot()

6164

65class

director

6673

74void

construct()

7581

};82

83//

客戶端**:

84void

main()

85100

//run out

101/*

102fat head

103fat hand

104fat body

105fat foot

106thin head

107thin hand

108thin body

109thin foot

110請按任意鍵繼續. . .

111*/

**示例2:

1 #include 

2 #include 3 #include 4

using

namespace

std;56

class

product716

17void

show()

1825 cout <27};

2829

class

builder30;

3637

class concretebuilder1 : public

builder

3847

virtual

void

buildera()

4851

virtual

void

builderb()

5255

virtual product *getresult()

5659

};60

6162

class concretebuilder2 : public

builder

6372

virtual

void

buildera()

7376

virtual

void

builderb()

7780

virtual product *getresult()

8184

};85

86class

director

8798 product *getresult()

99102

};103

104void

main()

105124

//run out

125/*

126one two

127aa bb

128請按任意鍵繼續. . .

129*/

建造者模式的優缺點

(1)優點

1、將複雜產品的建立步驟分解在不同的方法中,使得建立過程更加清晰,使得我們能夠更加精確的控制複雜物件的產生過程。

2、將產品的建立過程與產品本身分離開來,可以使用相同的建立過程來得到不同的產品。也就說細節依賴抽象。

3、每乙個具體建造者都相對獨立,而與其他的具體建造者無關,因此可以很方便地替換具體建造者或增加新的具體建造者,使用者使用不同的具體建造者即可得到不同的產品物件。

(2)缺點

1、建造者模式所建立的產品一般具有較多的共同點,其組成部分相似,如果產品之間的差異性很大,則不適合使用建造者模式,因此其使用範圍受到一定的限制。

2、如果產品的內部變化複雜,可能會導致需要定義很多具體建造者類來實現這種變化,導致系統變得很龐大。

good good study, day day up.

順序 選擇 迴圈 總結

建造者模式

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

建造者模式

軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...

建造者模式

建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...