简单工厂模式

来源:互联网 发布:数组公式 编辑:程序博客网 时间:2024/05/18 16:38
#include <iostream>#include <memory>enum FactoryType { A, B, C };class Product{public:virtual void show() = 0;};class ProductA : public Product{public:void show(){std::cout << "Product A" << std::endl;}};class ProductB : public Product{public:void show(){std::cout << "Product B" << std::endl;}};class ProductC : public Product{public:void show(){std::cout << "Product C" << std::endl;}};class Factory{public:std::shared_ptr<Product> creat_product(FactoryType type){switch (type){case A:return std::make_shared<ProductA>();case B:return std::make_shared<ProductB>();case C:return std::make_shared<ProductC>();default:return nullptr;}}};int main(){Factory demo;std::shared_ptr<Product> ptrA = demo.creat_product(A);ptrA->show();std::shared_ptr<Product> ptrB = demo.creat_product(B);ptrB->show();std::shared_ptr<Product> ptrC = demo.creat_product(C);ptrC->show();return 0;}

0 0
原创粉丝点击