美文网首页
工厂方法模式 C++实现

工厂方法模式 C++实现

作者: 假程序员 | 来源:发表于2019-03-11 00:04 被阅读0次
//
//  main.cpp
//  factory_method_pattern
//
//  Created by apple on 2019/3/10.
//  Copyright © 2019年 apple. All rights reserved.
//

#include <iostream>

class IProduct
{
public:
    virtual void create() = 0;
    virtual ~IProduct() {}
};

class Error:public IProduct
{
public:
    void create()
    {
        std::cout<<"Error"<<std::endl;
    }
};
class Box:public IProduct
{
public:
    void create()
    {
        std::cout<<"Box"<<std::endl;
    }
};
class Phone:public IProduct
{
public:
    void create()
    {
        std::cout<<"Phone"<<std::endl;
    }
};
class Pen:public IProduct
{
public:
    void create()
    {
        std::cout<<"Pen"<<std::endl;
    }
};
class IFactory
{
public:
    virtual IProduct *GetProduct() = 0;
    virtual ~IFactory() {}
};
class FactoryA:public IFactory
{
public:
    IProduct *GetProduct();
};
class FactoryB:public IFactory
{
public:
    IProduct *GetProduct();
};

IProduct *FactoryA::GetProduct()
{
    return new Box();//A工厂只能生产Box
}
IProduct *FactoryB::GetProduct()
{
    return new Phone();//B工厂只能生产Phone
}


int main(int argc, const char * argv[]) {
    IProduct *product;
    IFactory *factory;
    
    factory= new FactoryA();
    product = factory->GetProduct();
    product->create();
    delete product;
    product = NULL;
    delete factory;
    factory = NULL;
    
    factory = new FactoryB();
    product = factory->GetProduct();
    product->create();
    delete product;
    product = NULL;
    
    delete factory;
    factory = NULL;
    return 0;
}
Box
Phone
Program ended with exit code: 0

相关文章

  • C++ 常见设计模式

    C++ 常见设计模式包括: 工厂模式 简单工厂模式定义工厂创建类,抽象产品,派生产品类 工厂方法模式 抽象工厂模式...

  • 五分钟精通设计模式(三)之工厂方法模式

    工厂方法模式分为三种: 普通工厂方法模式、多个工厂方法模式、静态工厂方法模式 废话不多说,下面直奔主题,实现步骤:...

  • 抽象工厂模式(选择产品簇)

    目录 回顾众多工厂模式 抽象工厂模式的理念 抽象工厂模式与工厂方法模式的差异 怎么来实现抽象工厂模式 抽象工厂模式...

  • 设计模式2-工厂模式

    工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式 简单工厂模式 简单工厂模式,就是建立一个工厂类,对实现了同一...

  • 工厂设计模式

    工厂模式 实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式 工厂模式好处 工厂模式是我们最常...

  • 工厂模式

    什么是工厂模式? 实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式 工厂模式好处 工厂模式是...

  • C++设计模式-第二篇 (Boolan)

    C++设计模式-第二篇 (Boolan) 本章内容:1 工厂方法模式2 抽象工厂模式3 原型模式4 构建器模式5 ...

  • 工厂方法模式 C++实现

  • 设计模式之工厂模式

    工厂模式包括3种形式:简单工厂、工厂方法、抽象工厂。 工厂模式的目的:将类的实例生成,跟类接口的具体实现分离,实现...

  • Gof23 工厂模式

    工厂模式: 实现了创建者和调用者的分离。 详细分类: 简单工厂模式 工厂方法模式 抽象工厂模式 面向对象设...

网友评论

      本文标题:工厂方法模式 C++实现

      本文链接:https://www.haomeiwen.com/subject/dupmpqtx.html