设计模式的创建型模式1—简单工厂
角色
工厂类:用来生产具体产品;
抽象产品类:用来定义产品接口;
具体产品类:用来实现接口,完成具体产品功能。
用途
通过工厂类创建创建其他产品类的实例,将逻辑分值判断交给了工厂,简化客户操作和最少知道原则,需要客户知道抽象产品类和工厂类
代码实例
产品代码:
class person
{
public:
person();
~person();
virtual void eat();
};
class personMan : public person
{
public:
personMan();
~personMan();
void eat();
};
class personWoman : public person
{
public:
personWoman();
~personWoman();
void eat();
};
工厂代码:
class factory
{
public:
factory();
~factory();
person *createPerson(int flag);
};
factory::factory()
{
}
factory::~factory()
{
}
person *factory::createPerson(int flag)
{
person *tmp_person = nullptr;
if (flag = 0)
{
tmp_person = new personMan();
}
else if (flag = 1)
{
tmp_person = new personWoman();
}
return tmp_person;
}
客户端代码:
factory *tmp_factory = new factory;
person *tmp_personMan = tmp_factory->createPerson(0);//man
person *tmp_personWoman = tmp_factory->createPerson(1);//woman
类图:
`