设计模式-建造者模式

来源:互联网 发布:51单片机串口程序 编辑:程序博客网 时间:2024/05/17 09:13
创建型设计模式-建造者设计模式


模式描述:将一个复杂对象的构建与他的表示分离,这样就能使得同样的构建过程创建出不同的表示。


代码实现方案(构建一座房屋包括:门、窗、墙、屋顶四个过程)


//C++


//定义创建者接口,接口只定义了建造房屋的过程步骤,具体的建造方法由构建具体房屋的类实现
class Builder
{
public:
virtual void BuildDoor(){}
virtual void BuildWindow(){}
virtual void BuildWall(){}
virtual void BuildRoof(){}
};


//构建东方式房屋类
class BuilderEast:Builder
{
public:
void BuildDoor(){std::cout<<"建造东方式的门";}
void BuildWindow(){std::cout<<"建造东方式的窗";}
void BuildWall(){std::cout<<"建造东方式的墙";}
void BuildRoof(){std::cout<<"建造东方式的门";}
};


//构建西方式房屋类
class BuilderWest:Builder
{
public:
void BuildDoor(){std::cout<<"建造西方式的门";}
void BuildWindow(){std::cout<<"建造西方式的窗";}
void BuildWall(){std::cout<<"建造西方式的墙";}
void BuildRoof(){std::cout<<"建造西方式的门";}
};


//定义建造房屋者的类,由建造者决定建造哪种类型的房屋
class BuilderHouseMan
{
private:Builder *ManBuilder;


public: BuilderHouseMan(Builder *builder)
{
ManBuilder=builder;
}
void BuilderHouse()
{
ManBuilder->BuildDoor();
ManBuilder->BuildRoof();
ManBuilder->BuildWall();
ManBuilder->BuildWindow();
}
};
//建造房屋时,用具体样式房屋的类的对象为参数构造建造房屋者对象,由建造者建建该样式的房屋