#include <iostream>
#include <list>
using namespace std;
class AbstractFruit {
public:
virtual void showName() = 0;
};
class Apple :public AbstractFruit {
public:
virtual void showName()
{
cout << "苹果" << endl;
}
};
class Banana :public AbstractFruit {
public:
virtual void showName()
{
cout << "香蕉" << endl;
}
};
class Pear :public AbstractFruit {
public:
virtual void showName()
{
cout << "梨" << endl;
}
};
class FruitFactory {
public:
static AbstractFruit* createFruit(string flag)
{
if (flag == "apple")
return new Apple;
if (flag == "pear")
return new Pear;
if (flag == "banana")
return new Banana;
return nullptr;
}
};
int main()
{
AbstractFruit* fruit = FruitFactory::createFruit("apple");
fruit->showName();
AbstractFruit* fruit2 = FruitFactory::createFruit("pear");
fruit2->showName();
}
设计模式—简单工厂
最新推荐文章于 2024-08-05 10:11:41 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)