Contents

设计模式之创建型模式

Contents
  1. 单例模式

    是保证一个类仅有一个实例,并提供一个访问它的全局访问点。

  2. 简单工厂模式

    通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

  3. 工厂方法模式

    定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。

  4. 抽象工厂模式

    提供一个创建一系列相关或者相互依赖的接口,而无需指定它们具体的类。

  5. 原型模式

    用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

  6. 建造者模式

    将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。

  • 简单工厂模式:一个工厂负责创建所有产品(多个类共用一个Create函数)
    • 违反“开闭原则”,添加新产品需要修改工厂逻辑,工厂越来越复杂
  • 工厂方法模式:一个工厂创建一个产品(每个类都有一个Create函数)
    • 系统的可扩展性也就变得非常好,无需修改接口和原类

    • 增加系统中类的个数,复杂度和理解度增加(一个具体产品就需要对应一个具体工厂)

  • 抽象方法模式:一个工厂创建一系列(一个产品族)的产品(一个产品族一个Create)
    • 增加新的产品族很方便,无须修改已有系统,符合“开闭原则”

    • 增加新的产品等级结构麻烦,需要对原有系统进行较大的修改,违背了“开闭原则”

    • 相当于在工厂方法模式的基础下进行了折中

      • 对于产品族来说遵循了开闭原则

      • 对于产品等级结构来说没有遵循开闭原则

      • 如果产品结构等级稳定,那么就相当于完全遵循开闭原则