zoukankan      html  css  js  c++  java
  • 设计模式之Factory模式(C++)

    Factory模式具有两大重要的功能:

    (1)、定义创建对象的接口,封装了对象的创建;

    (2)、使具体化类工作延迟到了子类中。

    //Product.h
    #ifndef _PRODUCT_H_
    #define _PRODUCT_H_
    
    class Product
    {
    public:
          virtual ~Product();
    protected:
           Product();
    private:
       
    };
    
    class ConcreteProduct:public Product
    {
    public:
        ConcreteProduct();
        ~ConcreteProduct();
    protected:
    
    private:
    };
    #endif //_PRODUCT_H_
    //Product.cpp
    #include "Product.h"
    #include <iostream>
    using namespace std;
    
    Product::Product()
    {}
    Product::~Product()
    {}
    ConcreteProduct::ConcreteProduct()
    {}
    ConcreteProduct::~ConcreteProduct()
    {}
    //Factory.h
    #ifndef _FACTORY_H_
    #define _FACTORY_H_
    
    class Product;
    class Factory
    {
    public:
        virtual ~Factory();
        virtual Product *CreateProduct() = 0; 
    protected:
        void Factory();
    private:
    };
    
    class ConcreteFactory:public Factory
    {
    public:
        ConcreteFactory();
        ~ConcreteFactory();
        Product * CreateProduct();
    protected:
    private:    
    };
    #endif //_FACTORY_H_
    //Fatory.cpp
    
    #include "Factory.h"
    #include "Product.h"
    
    #include <iostream>
    using namespace std;
    
    Factory::Factory()
    {}
    Factory::~Factory()
    {}
    
    ConcreteFactory::ConcreteFactory()
    {}
    ConcreteFactory::ConcreteFactory()
    {}
    
    Product ConcreteFactory::CreateProduct()
    {
        ConcreteProduct cproduct = new ConcreteProduct;
        return product;
    }
    //main.cpp
    
    #include "Factory.h"
    #include "Product.h"
    
    #include <iostream>
    using namespace std;
    
    int main(int argc,char *argv[])
    {
        Factory *fac = new ConcreteFactory;
        Product *p = fac->CreateProduct();
    
        return 0;
    }

  • 相关阅读:
    Silverlight+WCF 新手实例 象棋 介绍四(三十一)
    python 抓包(转)
    Python字符集编码和文件读写 [转]
    python操作Excel读写使用xlrd(转)
    Wing IDE 中文显示方法
    Python使用win32gui.SetWindowPos置顶窗口(转)
    python url格式解析(转)
    TCP/IP 某些最常见的错误原因码 (errno)列表(转)
    WinPcap过滤串表达式的语法
    python读取注册表值(转)
  • 原文地址:https://www.cnblogs.com/tslDream/p/4456397.html
Copyright © 2011-2022 走看看