cpp的工厂模式

    xiaoxiao2021-11-30  24

    cpp的工厂模式

    // // main.cpp // factoryPartner // // Created by bikang on 16/11/18. // Copyright (c) 2016年 bikang. All rights reserved. // #include <iostream> using namespace std; class Produce{ public: virtual ~Produce(){} virtual void produceIt()=0; }; class XmlProduce:public Produce{ public: ~XmlProduce(){} void produceIt(){ cout << "XmlProduce" << endl; } }; class JsonProduce:public Produce{ public: ~JsonProduce(){} void produceIt(){ cout << "JsonProduce" << endl; } }; enum TYPELIST{TYPE_XML,TYPE_JSON}; class Factory{ public: virtual Produce* createProduce(TYPELIST type)=0; virtual ~Factory(){} protected: Factory(){} }; class ToolFactory:public Factory{ public: ToolFactory(){} Produce* createProduce(TYPELIST type){ switch (type) { case TYPE_XML: return new XmlProduce(); break; default: return new JsonProduce(); break; } } ~ToolFactory(){} }; int main(int argc, const char * argv[]) { Factory *tf = new ToolFactory(); Produce *p = tf->createProduce(TYPE_XML); p->produceIt(); p = tf->createProduce(TYPE_JSON); p->produceIt(); delete tf; delete p; std::cout << "Hello, World!\n"; return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-678974.html

    最新回复(0)