建造者模式的定義將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示:
《大話設計模式》舉了乙個很好的例子——建造小人,一共需建造6個部分,頭部、身體、左右手、左右腳。與工廠模式不同,建造者模式是在導向者的控制下一步一步構造產品的。建造小人就是在控制下一步步構造出來的。建立者模式可以能更精細的控制構建過程,從而能更精細的控制所得產品的內部結構
對於客戶來說,只需知道導向者就可以了,通過導向者,客戶就能構造複雜的物件,而不需要知道具體的構造過程。
**示例: //
#include "stdafx.h"
#include using namespace std;
class men
void seteye(int param)
void setfoot(int param)
void show()
private:
int m_nbody;
int m_neye;
int m_nfoot;
};class basebuilder
;class fatbuilder : public basebuilder
void buildbody(int param)
void buildeye(int param)
void buildfoot(int param)
men* getmen()
protected:
private:
men * m_men;
};class thinbuilder : public basebuilder
void buildbody(int param)
void buildeye(int param)
void buildfoot(int param)
men* getmen()
protected:
private:
men * m_men;
};class director
void buildermen()
public:
basebuilder* m_basebuilder;
};int main(int argc, char* argv)
結果:create a fatter!!
body:501
eye:502
foot:503
hello world!
create a thiner!!
body:501
eye:502
foot:503
hello world!
press any key to continue
建立者模式
當我們使用抽象工廠時,在客戶端進行呼叫的時候,如果產品的類別比較多,那麼此時工廠返回的例項物件將會很多。客戶端得 將會大大增加,這將不利於程式的可讀性。為了解決此類問題,可以把所有例項的建立放在乙個類中去生成,這樣在客戶端只需要呼叫這個建立者類,大大減少客戶端的 量。1,所有動物類的介面 packa...
建立者模式
建造者模式也叫生成器模式,是由gof提出的23種設計模式中的一種。builder模式是一種物件建立型模式,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承和過載的方式,動態地建立具有復合屬性的物件。物件的建立 builder模式是為物件的建立而設計的模式 建立的是乙個復合物件...
建立者模式
意圖 將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。下面會發現模式實現方式與策略模式,橋接模式等都是相似的,唯有意圖不同而已.此為建立者模式 建立者模式在平時生活中很常見,如肯德基的 可樂可以跟很多東西組合成乙個 而你向服務員要的就是乙個 服務員就把不同東西組合在一起成了乙個...