工厂模式(Factory Pattern)
- 简单工厂模式:
- UML类图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200130114441184.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d3aHgyNw==,size_16,color_FFFFFF,t_70)
- 代码实现:
class Pizza
{
void prepare();
void bake();
void cut();
void box();
std::string m_Name;
}
class CheesePizza : public Pizza
{
}
class PepperoniPizza : public Pizza
{
}
class SimpleFactory
{
public:
Pizza* createPizza(std::string& strType)
{
Pizza* pPizza = NULL;
if (strType == "cheese")
{
pPizza = new CheesePizza();
}
else if (strType == "pepperoni")
{
pPizza = new PepperoniPizza();
}
return pPizza;
}
}
class PizzaStore
{
public:
PizzaStore(SimpleFactory* pSimpleFactory)
{
m_pSimpleFactory = pSimpleFactory;
}
Pizza* orderPizza(std::string& strType);
{
Pizza* pPizza = m_pSimpleFactory->createPizza(strType);
return pPizza;
}
SimpleFactory* m_pSimpleFactory;
}