美文网首页
c++工厂方法模式

c++工厂方法模式

作者: 一路向后 | 来源:发表于2021-03-01 23:06 被阅读0次

1.工厂方法模式简介

   工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

2.源码实现

#include <iostream>
#include <string>

using namespace std;

//车类
class Car
{
public:
    virtual ~Car(){}
    virtual void createCar(void) = 0;
};

//奔驰车
class BenzCar : public Car
{
public:
    BenzCar()
    {
        cout << "Benz::Benz()" << endl;
    }

    virtual ~BenzCar(){}

    virtual void createCar(void)
    {
        cout << "BenzCar::createCar()" << endl;
    }
};

//宝马车
class BmwCar : public Car
{
public:
    BmwCar()
    {
        cout << "Bmw::Bmw()" << endl;
    }

    virtual ~BmwCar(){}

    virtual void createCar(void)
    {
        cout << "BmwCar::createCar()" << endl;
    }
};

//车工厂
class Factory
{
public:
    virtual ~Factory(){}
    virtual Car *createSpecificCar(void) = 0;
};

//奔驰车厂
class BenzFactory : public Factory
{
public:
    virtual ~BenzFactory(){}

    virtual Car *createSpecificCar(void)
    {
        return (new BenzCar());
    }
};

//宝马车厂
class BmwFactory : public Factory
{
public:
    virtual ~BmwFactory(){}

    virtual Car *createSpecificCar(void)
    {
        return (new BmwCar());
    }
};

int main()
{
    Factory *factoryA = new BenzFactory();
    Car *specificCarA = factoryA->createSpecificCar();

    Factory *factoryB = new BmwFactory();
    Car *specificCarB = factoryB->createSpecificCar();

    delete factoryA;
    delete factoryB;
    delete specificCarA;
    delete specificCarB;

    return 0;
}

3.编译源码

$ g++ -o example example.cpp

4.运行及其结果

$ ./example
Benz::Benz()
Bmw::Bmw()

相关文章

  • C++ 常见设计模式

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

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

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

  • 设计模式-3种工厂模式

    工厂模式包括:简单工厂模式,工厂方法模式,抽象工厂模式 简单工厂模式 工厂方法根据参数直接创建实例:工厂->产品 ...

  • 设计模式-工厂模式

    工厂模式概念 实例化对象,用工厂方法代替new操作。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂模式...

  • 设计模式-工厂方法模式

    1、工厂方法模式(Factory Method) 工厂方法模式分为三种: 普通工厂模式 多个工厂模式 静态工厂模式...

  • 设计模式 工厂模式

    工厂模式 工厂模式三大类1、简单工厂模式(静态工厂方法模式)2、工厂方法模式3、抽象工厂模式(Kit模式) 简单工...

  • python设计模式 - 工厂模式之工厂方法

    python 环境 工厂方法模式简介 工厂方法模式Factory Method,又称多态性工厂模式。在工厂方法模式...

  • 第一章2.0工厂- 基础类准备

    2.1工厂-简单工厂模式2.2工厂-工厂方法模式2.3工厂-抽象工厂模式

  • 建造模式

    包括:简单工厂、工厂方法、抽象工厂、单例模式、多例模式、建造模式、原始原型模式。 简单工厂:又名静态工厂方法模式,...

  • PHP-浅谈单例模式和工厂模式

    PHP中常用的设计模式有单例模式、工厂模式(简单工厂模式、工厂方法模式和抽象工厂方法模式)、适配模式、策略模式。 ...

网友评论

      本文标题:c++工厂方法模式

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