美文网首页
创建型模式1-工厂方法

创建型模式1-工厂方法

作者: sunblog | 来源:发表于2018-04-16 23:18 被阅读0次

创建型模式1-工厂方法

创建型模式简

创建型模式主要有5个:

  1. 工厂方法(factory method)
  2. 抽象工厂(abstract factory)
  3. 单例模式(singleton)
  4. 构造者模式(builder)
  5. 原型模式(prototype)

下面分别描述这几种模式。

工厂方法(factory method)

意图

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

问题思考

考虑ppt文件。Application可能需要新建一个.ppt文件,也有可能新建一个.pptx文件,将来还有可能会出现.ppty文件。

适用性

  • 当一个类不知道要创建对象的具体类,只知道抽象父类的时候
  • 当一个类希望由它的的子类来指定它所创建的对象的时候

类图

factory_method

实现


class MyProduct : public IProduct {

};

class ICreator {
public:
    virtual Product *CreateProduct() = 0;
    
     // either way is ok. You can also pass arguments here
//    virtual Product *CreateProduct() {
//        return new Product();
//    };

    virtual ~ICreate() {}   // 以后的文档都会省略dtor。此处仅作为提示。
};


class MyCreator : public Creator {
public:
    IProduct *CreateProduct() override {
        return new MyProduct();
    }
};

class AnotherCreator : public Creator {
public:
    IProduct *CreateProduct() override {
        return new AnotherProduct();
    }
};

注意:方法CreateProduct可以是纯虚函数,也可以是虚函数。如果为虚函数,可以提供一个默认的实现。

效果
传统的方式是通过if else来判断需要新建的类,这样容易造成庞大的if else。如果要新建一个Product,需要修改if else,这样很容易出错。工厂方法通过继承和实现虚函数,子类可以构造特定的Product子类。如果需要添加一个Product子类,只需要新建一个Creator子类,由子类负责新Product的新建工作。

相关文章

  • 创建型模式1-工厂方法

    创建型模式1-工厂方法 创建型模式简 创建型模式主要有5个: 工厂方法(factory method) 抽象工厂(...

  • 设计模式(1) 工厂方法模式

    创建型模式 简单工厂模式 工厂方法模式IOC与工厂方法模式的结合泛型工厂委托工厂 创建型模式 创建型模式可以隔离客...

  • Kotlin(八)kotlin设计模式-创建型

    创建型模式 - 工厂 Kotlin里面几种主流创建型设计模式:工厂方法模式,抽象工厂模式,构建者模式 8.1 伴生...

  • 工厂方法模式

    什么是工厂方法模式 工厂方法模式又称为工厂模式,属于创建型设计模式。工厂方法模式定义了一个创建对象的接口,但由子类...

  • 2021-11-16 - 学习记录

    设计模式学习:创建型:工厂(工厂方法,抽象工厂),建造者,单例,原型 设计模式:工厂模式 简单工厂 工厂方法 抽象工厂

  • 简单工厂模式

    工厂方法模式(Factory Pattern)是创建型设计模式之一。 一、定义 简单工厂模式又称为静态方法工厂模式...

  • 设计模式[2]-工厂方法模式-Factory Method Pa

    1. 工厂方法模式简介 工厂方法模式(Factory Method Pattern)是创建型的设计模式,和简单工厂...

  • JavaScript 23种设计模式

    创建型: 抽象工厂模式(Abstract Factory) 构建者模式(Builder) 工厂方法模式(Facto...

  • 设计模式之工厂方法模式|抽象工厂模式

    工厂方法模式(Factory Method) 工厂方法模式(Factory Method)是一种创建型的设计模式,...

  • 工厂方法模式

    个人博客http://www.milovetingting.cn 工厂方法模式 模式介绍 工厂方法模式是创建型设计...

网友评论

      本文标题:创建型模式1-工厂方法

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