0、工厂模式类型
工厂模式就是用一个单独的类来做创造实例的过程,用来创造的其他实例的这个类即为工厂。工厂模式一般分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。
1、简单工厂模式
简单工厂模式是属于创建型模式,又叫做静态工厂方法(static Factory Method)模式,简单工厂模式是由一个工厂对象决定创建出来哪一种产品类的实例。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类继承自一个父类或接口)的实例。打个比方,假设有一个工厂,他能生产出A、B两种产品。当客户需要产品的时候一定要告诉工厂是哪种产品,是A还是B。当新增加一种新产品的时候,那么就要去修改工厂的类。
例:
#include <iostream>
using namespace std;
class AbstracProduct
{
public:
virtual ~AbstracProduct() {}
virtual void Operation() = 0;
};
class ProductA : public AbstracProduct
{
public:
void Operation() {
cout << "ProductA" << endl;
}
};
class ProductB : public AbstracProduct
{
public:
void Operation() {
cout << "ProductB" << endl;
}
};
class Factory {
public:
AbstracProduct* createProduct(char product) {
AbstracProduct* ap = nullptr;
switch (product)
{
case 'A':
ap = new ProductA();
break;
case 'B