2 Star 1 Fork 2

咸鱼(已废弃)/设计模式C语言

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
建造者模式.txt 2.25 KB
一键复制 编辑 原始数据 按行查看 历史
Dick—_YangDi 提交于 2017-11-08 22:31 . fist all file
//建造者模式
#include<iostream>
#include<string>
using namespace std;
class Product{
public:
void Add(string s){
cout<<"添加部件"<<s<<endl;
}
};
class Builder{
protected:
Product * t;
public:
Builder(){
t=new Product();
}
Product * GetProduct(){
return t;
}
virtual void BuildPartA()=0;
virtual void BuildPartB()=0;
virtual void BuildPartC()=0;
virtual ~Builder(){
delete t;
}
};
class ConcreteBuilderA:public Builder{
public:
void BuildPartA(){
cout<<"建造partA"<<endl;
t->Add("partA");
}
void BuildPartB(){
cout<<"建造partB"<<endl;
t->Add("partB");
}
void BuildPartC(){
cout<<"建造partC"<<endl;
t->Add("partC");
}
};
class Director{
public:
void Construct(Builder * b){
b->BuildPartA();
b->BuildPartB();
b->BuildPartC();
}
Product * GetProduct(Builder * b){
b->GetProduct();
}
~Director(){}
};
int main(void)
{
Builder * a=new ConcreteBuilderA();
Director * xy=new Director();
xy->Construct(a);
// Product * t=xy->GetProduct(a);
// t->Add("今晚打老虎");
delete xy;
// delete t;
return 0;
}
//
////建造者模式
//#include<iostream>
//#include<string>
//using namespace std;
//
//class Product{
// public:
// void Add(string s){
// cout<<"添加部件"<<s<<endl;
// }
//};
//
//class Builder{
// protected:
// Product * t;
// public:
// Builder(Product * t){
// this->t=t;
// }
// virtual void BuildPartA()=0;
// virtual void BuildPartB()=0;
// virtual void BuildPartC()=0;
//};
//
//class ConcreteBuilderA:public Builder{
// public:
// ConcreteBuilderA(Product * t):Builder(t){}
// void BuildPartA(){
// cout<<"建造partA"<<endl;
// t->Add("partA");
// }
// void BuildPartB(){
// cout<<"建造partB"<<endl;
// t->Add("partB");
// }
// void BuildPartC(){
// cout<<"建造partC"<<endl;
// t->Add("partC");
// }
//
//};
//
//class Director{
// private:
// Builder * b;
// public:
// Director(Builder * b){
// this->b=b;
// }
// void Construct(){
// b->BuildPartA();
// b->BuildPartB();
// b->BuildPartC();
// }
//};
//
//int main(void)
//{
// Product * p=new Product();
// Builder * b=new ConcreteBuilderA(p);
// Director * d=new Director(b);
// d->Construct();
// delete p;
// delete b;
// delete d;
// return 0;
//}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Dick_YangDi/SheJiMoShi.git
git@gitee.com:Dick_YangDi/SheJiMoShi.git
Dick_YangDi
SheJiMoShi
设计模式C语言
master

搜索帮助