建立者模式

2021-07-06 11:25:02 字數 1336 閱讀 9889

建造者模式的定義將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示:

《大話設計模式》舉了乙個很好的例子——建造小人,一共需建造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模式是為物件的建立而設計的模式 建立的是乙個復合物件...

建立者模式

意圖 將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。下面會發現模式實現方式與策略模式,橋接模式等都是相似的,唯有意圖不同而已.此為建立者模式 建立者模式在平時生活中很常見,如肯德基的 可樂可以跟很多東西組合成乙個 而你向服務員要的就是乙個 服務員就把不同東西組合在一起成了乙個...