大話設計模式C 版本 09 建造者模式

2021-10-07 22:47:47 字數 1802 閱讀 3363

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

建造者模式其實就是在建立複雜物件時,使用乙個builder類(建造者類)來規範了必要的步驟,並且使用乙個director類(指揮類)來規範建造過程

一些基本部件不會變,而其組合經常變化的時候。例如:畫乙個小人,小人的基本部件(頭、身體、兩隻手、兩隻腳)以及畫的過程一般都不會變的;而畫瘦子或胖子就需要改變畫的方法了。

寫乙個builder類規範必要的步驟,每個步驟都是純虛函式,所以子類必須重寫,沒有重寫則編譯不過,所以每個必要的步驟都實現了,不會漏掉哪個步驟;

// 建造者類-規範了必要的步驟,因為都是純虛函式,所以子類必須重寫,否則編譯不過

class

builder

;

寫子類,繼承builder類,並實現必要的步驟
class

concreatbuilder1

:public builder

~concreatbuilder1()

void

buildparta()

void

buildpartb()

product *

getresult()

};class

concreatbuilder2

:public builder

~concreatbuilder2()

void

buildparta()

void

buildpartb()

product *

getresult()

};

寫乙個director類規範建造過程,這個類就是規定了builder類的步驟哪個是第一步、第二步、第三步 …
class

director

// 指揮類-控制建造過程。

};

#include

#include

#include

using

namespace std;

class

product

void

show()

}};// 建造者類-規範了必要的步驟,因為都是純虛函式,所以子類必須重寫,否則編譯不過

class

builder

;class

concreatbuilder1

:public builder

~concreatbuilder1()

void

buildparta()

void

buildpartb()

product *

getresult()

};class

concreatbuilder2

:public builder

~concreatbuilder2()

void

buildparta()

void

buildpartb()

product *

getresult()

};class

director

// 指揮類-控制建造過程。};

intmain()

程杰老師的《大話設計模式》

大話設計 建造者模式

官方解釋建造者模式 名稱 builder pattern 定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。圖示 理解 builder是為建造乙個product物件的各個部件指定的抽象介面。concretebuilder是具體的建造者,實現builder介面,構造和裝配...

大話設計模式 建造者模式

1 建造者模式 builder 又叫生成器模式,它是將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的比奧斯。如果我們用了建造者模式,那麼使用者就只需指定需要建造的型別就可以得到它們,而具體建造的過程和細節就不需知道了。2 建造者模式 builder 結構圖 3 建造者模式主要是用...

大話設計模式 建造者模式

我們在建造的過程是基本穩定的,不需要大變動,只要是人這個類不管是胖瘦,都得有頭身手腳。但是具體的一些細節是不同的,有高矮胖瘦 長腿長胳膊,對於使用者來說他最終要的是結果,你只管建就可以了,在這樣的需求下我們要將這個複雜物件的構建和其表示分離開來,使得同樣的構建過程能創造更多的表示方法,滿足不同使用者...