简单工厂模式(c++)

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

class AbstractFruit {
	public:
		virtual void showname() = 0;
};
class Apple :public AbstractFruit {
public:
	void showname() {
		cout << "我是苹果" << endl;
	}
};
class Banner :public AbstractFruit {
public:
	void showname() {
		cout << "我是香蕉" << endl;
	}
};
class Pear :public AbstractFruit {
public:
	void showname() {
		cout << "我是梨" << endl;
	}
};
class Feactory {
public:
	static AbstractFruit* CreateFruit(string flag) {
		if (flag == "apple") {
			return new Apple;
		}
		else if (flag == "pear") {
			return new Pear;
		}
		else if (flag == "banana") {
			return new Banner;
		}
		else {
			return nullptr;
		}

	}
};
void test1() {
	Feactory* factory = new Feactory;
	AbstractFruit* fruit = factory->CreateFruit("apple");
	fruit->showname();
	delete fruit;

	delete factory;
}
int main(){
	test1();
	cin.get();
}

  

posted @ 2024-03-25 17:52  dmfsimle  阅读(0)  评论(0编辑  收藏  举报