Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。
对象的创建:Builder模式是为对象的创建而设计的模式- 创建的是一个复合对象:被创建的对象为一个具有复合属性的复合对象- 关注对象创建的各部分的创建过程:不同的工厂(这里指builder生成器)对产品属性有不同的创建方法
#include<iostream>
using namespace std;
class House
{
string mWall;
string mDoor;
public:
void set_wall(string w)
{
mWall = w;
}
void set_door(string d)
{
mDoor = d;
}
string get_wall()
{
return mWall;
}
string get_door()
{
return mDoor;
}
};
class Builder //封装建造的过程
{
House *house;
public:
Builder()
{
house = new House;
}
void constructor()
{
build_wall("WALL");
build_door("DOOR");
}
House *get_house()
{
return house;
}
private:
void build_wall(string w)
{
house->set_wall(w);
}
void build_door(string d)
{
house->set_door(d);
}
};
int main()
{
Builder *builder = new Builder;
builder->constructor();
House *house = builder->get_house();
cout<<house->get_wall()<<endl;
cout<<house->get_door()<<endl;
return 0;
}