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 AbstractFactor {
public :
virtual Fruit* createFruit() = 0;
};
class AppleFactor : public AbstractFactor {
virtual Fruit* createFruit() {
return new Apple;
}
};
void test() {
AbstractFactor* factor = new AppleFactor();
Fruit* f = factor->createFruit();
f->eat();
}
int main() {
test();
return 0;
}