美文网首页C++设计模式程序员
【C++设计模式】简单工厂模式

【C++设计模式】简单工厂模式

作者: 小鱼号的代码日记 | 来源:发表于2021-01-31 21:11 被阅读0次
/*设计模式
 * 简单工厂模式
 * 不想创建对象(避开new)
 * 传入参数,让工厂知道应该创建类型的对象
 *优点:
 * 1 客户端和具体类解耦
 * 2 不用考虑如何创建复杂的对象
 * 缺点:
 * 1简单工厂模式,创建新的对象需要修改源代码
 *  不符合开闭原则
 * 2 创建各种对象,职责过重,不符合单一职责原则
 * 场景:
 *  适合负责创建对象比较少
 *
*/
#include<iostream>
using namespace std;
//抽象水果
class AbstractFruit
{
  public:
    virtual void ShowName() = 0;
};
//苹果
class Apple :public AbstractFruit
{
public:
    virtual void ShowName()
    {
        cout << "i am apple" << endl;
    }
};

//香蕉
class Banana :public AbstractFruit
{
public:
    virtual void ShowName()
    {
        cout << "i am banana" << endl;;
    }
};

//水果工厂
class FruitFactory
{
    public:
    static AbstractFruit* CreateFruit(string strFruitName)
    {
        if(strFruitName == "apple")
        {
            return new Apple;
        }
        else if(strFruitName == "banana")
        {
            return new Banana;
        }
        else
        {
            return nullptr;
        }
    }
};

void testSimpleFactory()
{
    cout << "simple factory test" << endl;
    FruitFactory* factory = new FruitFactory;
    AbstractFruit* fruit = factory->CreateFruit("apple");
    fruit->ShowName();
    delete fruit;
    fruit = factory->CreateFruit("banana");
    fruit->ShowName();
    delete fruit;
    delete factory;
}


相关文章

  • C++ 常见设计模式

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

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 设计模式一、单例模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 简单单例(推荐...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

  • 设计模式

    设计模式(视频总结) [TOC] 一、简单工厂模式(Simple Factory) 简单工厂模式: 简单工厂模式属...

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

  • Android设计模式:工厂设计模式

    目录 简单工厂模式工厂方法模式抽象工厂模式 简单工厂模式 简单工厂模式是所有工厂模式的基础,不属于23种设计模式范...

  • 相近设计模式比较

    设计模式干货: 简单工厂模式 vs. 工厂模式 vs. 抽象工厂模式简单工厂和工厂模式区别? 简单工厂没有多个子类...

  • 三、创建型模型

    简单工厂模式 工厂方法模式 抽象工厂模式 单例模式 1.简单工厂模式 简单工厂模式并不属于23种设计模式。 不难看...

网友评论

    本文标题:【C++设计模式】简单工厂模式

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