一、简单工厂模式
1.概念:简单工厂模式是属于创建型模式,又叫做静态工厂方法(static Factory Method)模式,简单工厂模式是由一个工厂对象决定创建出来哪一种产品类的实例。实质是由一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类继承自一个父类或接口)的实例。
2.使用场景:
(1)在程序中,需要创建的对象很多,导致对象的new操作多且杂时,需要使用简单工厂模式;
(2)由于对象的创建过程是我们不需要去关心的,而我们注重的是对象的实际操作,
所以,我们需要分离对象的创建和操作两部分,如此,方便后期的程序扩展和维护。
3.实现:
#include <iostream>
using namespace std;
typedef enum ProductTypeTag
{
TypeA, TypeB, TypeC
}ProductType;
class Product
{
public:
virtual void Show() = 0;
};
class ProductA : public Product
{
public:
void Show()
{
cout << "I'm ProductA" << endl;
}
};
class ProductB : public Product
{
public:
void Show()
{
cout << "I'm ProductB" << endl;
}
};
class ProductC : public Product
{
public:
void Show()
{
cout << "I'm ProductC" << endl;
}
};
class Factory
{
public:
Product* CreateProduct(ProductType type)
{
switch (type)
{
case TypeA:
return new ProductA();
case TypeB:
return new ProductB();
case TypeC:
return new ProductC();
default:
return NULL;
}
}
};
int main()
{
Factory* ProductFactory = new Factory();
Product* productObjA = ProductFactory->CreateProduct(TypeA);
if (productObjA != NULL)
productObjA->Show();
Product* productObjB = ProductFactory