建造者模式(builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
模式实现:
[code]class Builder;
//产品
class Product{
public:
void AddPart(const char *info){
m_PartInfoVec.push_back(info);
}
void ShowProduct(){
for(std::vector::iterator item = m_PartInfoVec.begin(); item != m_PartInfoVec.end(); ++item){
std::cout << *item << std::endl;
}
}
private:
std::vector m_PartInfoVec;
};
//Builder建造者,统一抽象接口
class Builder{
public:
virtual void BuildPartA(){}
virtual void BuildPartB(){}
virtual Product* GetProduct() { return NULL;}
};
//具体的被创建对象方法
class ConcreteBuilder:public Builder{
public:
ConcreteBuilder(){ m_Product = new Product(); }
void BuildPartA(){
m_Product->AddPart("PartA completed");
}
void BuildPartB(){
m_Product->AddPart("PartB q");
}
Product* GetProduct(){
return m_Product;
}
private:
Product *m_Product;
};
//Director控制具体建造对象的创建
class Director{
public:
Director(Builder *builder) { m_Builder = builder; }
void CreateProduct(){
m_Builder->BuildPartA();
m_Builder->BuildPartB();
}
private:
Builder *m_Builder;
}; 客户端:
[code]int main(){
Builder *builderObj = new ConcreteBuilder();
Director directorObj(builderObj);
directorObj.CreateProduct();
Product *productObj = builderObj->GetProduct();
if(productObj == NULL)
{
return 0;
}
productObj->ShowProduct();
delete productObj;
productObj = NULL;
delete builderObj;
builderObj = NULL;
}以上就是C++设计模式浅识建造者模式的内容,更多相关内容请关注PHP中文网(www.php.cn)!
HTShop网上购物系统由恒天网络科技有限公司根据国际先进技术和国内商务特点自主版权开发的一款具有强大功能的B2C电子商务网上购物平台。HTShop以国际上通用流行的B/S(浏览器/服务器)模式进行设计,采用微软公司的ASP.NET(C#)技术构建而成。 2007-11-10 HTShop CS 通用标准版 v1.1.11.10 更新内容自由更换模版功能开放 修改了购买多款商品,会员中心订单只显示










