1 Star 0 Fork 621

holiday/DesignPattern

forked from Micooz/DesignPattern 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
BuilderPattern.cpp 1.17 KB
一键复制 编辑 原始数据 按行查看 历史
Micooz 提交于 2014-10-03 20:54 +08:00 . 23种设计模式的C++实现
#include <iostream>
using namespace std;
// Product
class Product {
public:
Product() {
cout << "Product..." << endl;
}
};
// Builder
class Builder {
public:
virtual void BuildPartA() = 0;
virtual void BuildPartB() = 0;
virtual void BuildPartC() = 0;
virtual Product* GetProduct() = 0;
virtual ~Builder() { }
};
class ConcreteBuilder :public Builder {
public:
void BuildPartA() {
cout << "BuildPartA..." << endl;
}
void BuildPartB() {
cout << "BuildPartB..." << endl;
}
void BuildPartC() {
cout << "BuildPartC..." << endl;
}
Product* GetProduct() {
return new Product();
}
};
// Director
class Director {
public:
Director(Builder* pBuilder) {
_builer = pBuilder;
}
void Construct() {
_builer->BuildPartA();
_builer->BuildPartB();
_builer->BuildPartC();
}
private:
Builder *_builer;
};
int main() {
auto builder = new ConcreteBuilder();
auto director = new Director(builder);
director->Construct();
Product* product = builder->GetProduct();
delete product;
delete builder;
delete director;
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/holiday321/DesignPattern.git
git@gitee.com:holiday321/DesignPattern.git
holiday321
DesignPattern
DesignPattern
master

搜索帮助