首页 > 技术文章 > 2021.10.17(简单工厂模式C++)

marr 2021-10-17 17:20 原文

C++源代码:

 

#include<iostream>
#include<vector>
using namespace std;

typedef enum PersonTypeTag
{
	M,
	W,
	R
}PersonType;

class Person
{
public:
	virtual void make() = 0;
};

class Man : public Person
{
public:
	void make()
	{
		cout << "生产男人" << endl;
	}
};

class Woman : public Person
{
public:
	void make()
	{
		cout << "生产女人" << endl;
	}
};

class Robot : public Person
{
public:
	void make()
	{
		cout << "生产机器人" << endl;
	}
};

class Nvwa
{
public:
	Person*Personjudge(PersonType type) {
		switch (type) {
		case M:
			return new Man();
		case W:
			return new Woman();
		case R:
			return new Robot();
		default:
			return NULL;
		}
	}
};

int main(int argc, char *argv[])
{
	Nvwa *nvwa = new Nvwa();
	char t = 0;

	Person * man = nvwa->Personjudge(M);
	Person * woman = nvwa->Personjudge(W);
	Person * robot = nvwa->Personjudge(R);

	while (t != -1) {
		cout << "请输入标识符:";
		cin >> t;
		if (t == 'M')
			man->make();
		else if (t == 'W')
			woman->make();
		else if (t == 'R')
			robot->make();
		else {
			cout << "输入的标识符有误,请重新输入!" << endl;
			cout << "请输入标识符:";
			cin >> t;
		}
		cout << endl;
	}
	delete nvwa;
	nvwa = NULL;

	delete man;
	man = NULL;

	delete woman;
	woman = NULL;

	delete robot;
	robot = NULL;

	return 0;
}

 

  实现截图:

 

推荐阅读