简单工厂模式:就是生成相对应的类,我们不需要考虑类是如何创建的。
因为简单工厂模式并不符合开闭原则,所以四人帮并没有将简单工厂模式列为设计模式。
C++代码实现:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;
class Fruit {
public :
virtual void eat() = 0;
};
class Apple : public Fruit {
public :
virtual void eat() {
cout << "我想要吃苹果" << endl;
}
};
class Banana : public Fruit {
public:
virtual void eat() {
cout << "我想要吃香蕉" << endl;
}
};
class FruitFactor {
public :
static Fruit* createFruit(string name) {
if (name == "apple") {
return new Apple;
}
else if(name == "banana"){
return new Banana;
}
else {
return NULL;
}
}
};
void test() {
Fruit* f = FruitFactor::createFruit("apple");
f->eat();
delete f;
}
int main() {
test();
return 0;
}