本文介绍: 设计模式,Python语言描述,建造者模式

又称生成器,是一种创建型设计模式,使其能够分步骤创建复杂对象。允许使用相同的创建代码生成不同类型和形式的对象。

  1. 对象的创建问题:当一个对象的构建过程复杂,且部分构建过程相互独立时,可以使用建造者模式。例如,一个软件系统中需要创建一个复杂的对象,这个对象由多个部分组成,而这些部分可以独立地进行变更,这时候就可以使用建造者模式。
  2. 解耦问题:建造者模式将一个复杂对象的构建函数进行分离,使得同样的构建过程可以创建不同的表示。用户只需要指定需要建造的类型,不需要知道建造的过程和细节。
  • 结构复杂:当对象有非常复杂的内部结构,有许多属性时
  • 拆分大量参数的构造函数
  • 希望使用代码创建不同形式的产品,制造过程相似且仅有细节上的差异

  1. 生成器 (Builder)接口声明在所有类型生成器中通用的产品构造步骤。
  2. 具体生成器 (Concrete Builders)提供构造过程的不同实现。具体生成器也可以构造不遵循通用接口的产品。
  3. 产品 (Products)是最终生成的对象。由不同生成器构造的产品无需属于同一类层次结构或接口。
  4. 主管 (Director)类定义调用构造步骤的顺序,这样你就可以创建和复用特定的产品配置。
  5. 客户端 (Client)必须将某个生成器对象与主管类关联。一般情况下,你只需通过主管类构造函数的参数进行一次性关联即可。此后主管类就能使用生成器对象完成后续所有的构造任务。但在客户端将生成器对象传递给主管类制造方法时还有另一种方式。在这种情况下,你在使用主管类生产产品时每次都可以使用不同的生成器。

优点

  • 你可以分步创建对象,暂缓创建步骤或递归运行创建步骤。
  • 生成不同形式的产品时,你可以复用相同的制造代码。
  • 单一职责原则。你可以将复杂构造代码从产品的业务逻辑中分离出来。

缺点

  • 由于该模式需要新增多个类,因此代码整体复杂程度会有所增加。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注