[实验任务一]:女娲造人
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。
实验要求:
1.画出对应的类图;
2.提交源代码;
3.注意编程规范。
1、 类图
2、 源代码
#include<iostream>
#include<string>
using namespace std;
//抽象产品类——Person类
class Person{
public:
virtual void say()=0;
};
//具体产品类——Man类
class Man:public Person{
public:
void say(){
cout<<"我是一个Man"<<endl;
}
};
//具体产品类——Woman类
class Woman:public Person{
public:
void say(){
cout<<"我是一个Woman"<<endl;
}
};
//具体产品类——Robot类
class Robot:public Person{
public:
void say(){
cout<<"我是一个Robot"<<endl;
}
};
//工厂类——Nvwa类
class Nvwa{
public:
Person *producePerson(string a){
if(a.compare("M")==0){
cout<<"女娲造了一个Man"<<endl;
return new Man();
}else if(a.compare("W")==0){
cout<<"女娲造了一个Woman"<<endl;
return new Woman();
}else if(a.compare("R")==0){
cout<<"女娲造了一个Robot"<<endl;
return new Robot();
}else{
cout<<"对不起,女娲不能造这样的人"<<endl;
}
}
};
//测试类——main类
int main(){
string s;
Person *p;
Nvwa *q=new Nvwa();
cout<<"***M:男人 W:女人 R:机器人***"<<endl;
cout<<"请输入:";
cin>>s;
p=q->producePerson(s);
p->say();
return 0;
}
3、 运行截图