設計模式 4 建立型之建造模式

2021-09-03 01:28:42 字數 1424 閱讀 9362

1 概念

builder模式也叫建造者模式或者生成器模式,是由gof提出的23種設計模式中的一種。builder模式是一種物件建立型模式之一,用來隱藏復合物件的建立過程,

它把復合物件的建立過程加以抽象,通過子類繼承和過載的方式,動態地建立具有復合屬性的物件。

builder模式是為物件的建立而設計的模式

2 建立者模式和工廠模式的區別

1 factory模式不考慮物件的組裝過程,而直接生成乙個我想要的物件。

2 builder模式先乙個個的建立物件的每乙個部件,再統一組裝成乙個物件。

3 factory模式所解決的問題是,工廠生產產品。

4 builder模式所解決的問題是工廠控制產品生成器組裝各個部件的過程,然後從產品生成器中得到產品。

#include using namespace std;

#include "string"

class house

void setwall(string wall)

void setwindow(string window)

//--

string getdoor( )

string getwall()

string getwindow()

private:

string m_door;

string m_wall;

string m_window;

};class builder

;//公寓工程隊

class flatbuilder : public builder

virtual void buildwall()

virtual void builddoor()

virtual void buildwindow()

virtual house* gethouse()

private:

house *m_house;

};//別墅 villa 工程隊

class villabuilder : public builder

virtual void buildwall()

virtual void builddoor()

virtual void buildwindow()

virtual house* gethouse()

private:

house *m_house;

};//設計師(指揮者) 負責建造邏輯

//建築隊 幹具體的活

class director

void construct()

private:

builder * m_build;

};void main()

建立型設計模式 建造模式

program ade someproblem author cade franklin create 2019 12 22 22 20 public inte ce housebuilder 別墅 program ade someproblem author cade franklin creat...

設計模式之建造模式

建造模式是物件的建立模式。建造模式可以將產品的內部表象與產品的生成過程分割開來,從而可以使乙個建造過程生成具有不同的內部表象的產品物件。上古時期女媧造人,首先要新建乙個人的類,但是女媧不只可以造人,它可以創造萬物,所以,這裡定義乙個標識介面叫product 產品 public inte ce pro...

建立型設計模式之建造者模式

建造者模式 主要用於將產品修飾的這部分內容抽象化,提供給外部乙個自由定製的修飾渠道,達到自由切換修飾規則但是不用修改舊 的效果。帶有抽象介面的建造者模式主要涉及的物件有 引導者 decorate 產品 抽象建造者介面 builder 定製化的builder。打個比方,我開著一輛拖拉機去石料場運載建築...