建造者模式
//将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
//区别于模板模式中方法在父类实现,放到build类中
#include <iostream>
#include <string>
using namespace std;
class people {
public:
virtual string name() = 0;
virtual int age() = 0;
virtual int height() = 0;
};
class xiaoming :public people {
public:
virtual string name() {
return "小明";
}
virtual int age() {
return 20;
}
virtual int height() {
return 170;
}
};
class xiaohong :public people {
public:
virtual string name() {
return "小红";
}
virtual int age() {
return 21;
}
virtual int height() {
return 160;
}
};
class build {
public:
void info(people *p) {
cout << "我的名字是:";
cout << p->name();
cout << ", 年龄:" << p->age();
cout << ", 身高:" << p->height() << endl;
}
};
int main() {
build* b = new build;
people* m = new xiaoming;
people* h = new xiaohong;
b->info(m);
b->info(h);
//p->info();
return 0;
}