//不符合开闭性原则,不是标准的设计模式,利用工厂类创建子类
#include <iostream>
using namespace std;
class Fruit
{
public:
virtual void getFruit() = 0;
protected:
private:
};
class Banana : public Fruit //实现关系
{
public:
virtual void getFruit()
{
cout << "我是香蕉...." << endl;
}
protected:
private:
};
class Apple : public Fruit //实现关系
{
public:
virtual void getFruit()
{
cout << "我是苹果...." << endl;
}
protected:
private:
};
class Factory
{
public:
Fruit *create(char *p) //依赖
{
if (strcmp(p, "banana") == 0)
{
return new Banana;
}
else if (strcmp(p, "apple") == 0)
{
return new Apple;
}
else
{
printf("不支持\n");
return NULL;
}
}
};
void main02()
{
Factory *f = new Factory;
Fruit *fruit = NULL;
//工厂生产 香蕉
fruit = f->create("banana");
fruit->getFruit();
delete fruit;
fruit = f->create("apple");
fruit->getFruit();
delete fruit;
delete f;
cout << "hello..." << endl;
system("pause");
return;
}
简单工厂
最新推荐文章于 2021-09-29 15:14:19 发布