简单工厂模式就是一个工厂根据不同的产品类型可以生产出不同的产品,当增加新的产品时需要修改工厂类。如下所示Factory 根据不同类型(A、B)生产不同的产品(ProductA,ProcuctB)
#include <iostream> using namespace std; //产品类型
enum ProductType { A = 1, B = 2 }; //产品基类
class Product { public: virtual ~Product(){} virtual void create() = 0; }; //产品A
class ProductA : public Product { public: void create(){ cout << "A create()" << endl;} }; //产品B
class ProductB : public Product { public: void create(){ cout << "B create()" << endl;} }; //工厂
class Factory { public: static Product* createProduct(ProductType type) { switch(type) { case A: return new ProductA(); case B: return new ProductB(); } return nullptr; } }; int main() { Product* pa = Factory::createProduct(A); Product* pb = Factory::createProduct(B); pa->create(); pb->create(); delete pa; pa = nullptr; delete pb; pb = nullptr; }