代码拉取完成,页面将自动刷新
//建造者模式
#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;
//}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。