设计模式之Builder模式
来源:互联网 发布:javaweb怎样导入java类 编辑:程序博客网 时间:2024/06/06 14:01
Builder模式是将复杂对象的构建和他的表示分离,使得同样的创建过程可以创建不通的表示;其结构图为:
示例代码为:
class Product1{};
class Product2{};
class Builder{
public:
virtual void BuilderPartA();
virtual void BuilderPartB();
virtual void BuilderPartC();
Builder();
virtual ~Builder();
};
class ConcreteBuilder1:public Builder{
public:
ConcreteBuilder1():_product(NULL){};
virtual ~ConcreteBuilder1();
void BuilderPartA(){};
void BuilderPartB(){};
void BuilderPartC(){};
virtual Product1* GetProduct1(){return _product;}//返回创建的Product1对象指针
private:
Product1* _product;
};
class ConcreteBuilder2:public Builder{
public:
ConcreteBuilder2():_product(NULL){}
virtual ~ConcreteBuilder2();
void BuilderPartA(){};
void BuilderPartB(){};
void BuilderPartC(){};
virtual Product2* GetProduct2(){return _product;}//返回创建的錚roduct对象指针
private:
Product2* _product;
};
class Director{
public:
Director();
~Director();
void Construct(Builder* _builder)
{
_builder->BuilderPartA();
_builder->BuilderPartB();
_builder->BuilderPartC();
}
};
int main(int argc, char** argv)
{
Director director;
ConcreteBuilder1* pBuilder1 = new ConcreteBuilder1();
director.Construct(pBuilder1);
Product1* pProduct1 = pBuilder1->GetProduct1();
ConcreteBuilder2* pBuilder2 = new ConcreteBuilder2();
director.Construct(pBuilder2);
Product2* pProduct2 = pBuilder2->GetProduct2();
return 1;
}
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之 builder
- 设计模式之Builder
- 设计模式之builder
- Coding the Matrix: Week 4 The Basis 学习笔记
- 数据库事务
- 推荐三本书籍:c#、java以及iso开发
- JQuery控制页面及操作DOM
- ListView_SimpleAdapter
- 设计模式之Builder模式
- Android apk 反编译
- GSL积分运算
- Java中遍历大容量map的正确方法
- HTML5 本地存储
- 设计模式-工厂方法 简单工厂 抽象工厂 模板方法
- php 创建文件夹
- struts2结合poi-3.7实现数据导出为excel
- 利用队列实现广度优先搜索