所谓简单工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字,就可以通过工厂对象的相应工厂函数制造你所需要的对象。
简单工厂模式的核心是:对于一个父类对象的多个继承子类,工厂对象的工厂函数根据用户的输入,自动new出一个子类对象并返回一个父类指针,这样利用父类的指针执行父类的虚函数,就可以动态绑定子类的重写函数,从而实现多态。
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class Fruit
{
public:
Fruit(string kind)
{
this->kind = kind;
if (kind == "apple") {
//代表苹果
//苹果的初始化方式
}
else if (kind == "banana") {
//代表香蕉
//香蕉的初始化方式
}
}
void getName() {
if (this->kind == "apple") {
cout << "我是苹果" << endl;
}
else if (this->kind == "banana"){
cout << "我是香蕉" << endl;
}
}
private:
string kind;//代表水果的种类
};
int main(void)
{
//创建一个苹果
Fruit *apple = new Fruit("apple");
apple->getName();
delete apple;
//main函数跟Fruit类的构造函数耦合度高, 随着水果种类的增加 构造函数越来越复杂
return 0;
}