Technology-设计模式-生成器模式

本文介绍了GoF中的生成器模式。

模式推演

当一个产品是按步骤构造的:

例如要生成一个旅行计划,旅行计划基本都是按步骤生成的,例如几天的酒店,去哪个景点等,然后最后生成一个计划表。

Technology-DesignPattern-Builder-Request

弹性变化:

对于每个客户而言,他的旅行安排都是不同的,所以,我们需要能满足不同客户的需求,同时把生成计划表这一复杂的细节封装起来,客户只需要调用生成计划表接口即可。

Technology-DesignPattern-Builder-Class

定义

生成器模式(Builder Pattern):封装一个产品的构造过程,并允许按步骤构造。

生成器模式和抽象工厂模式区别:两者很像,区别在于生成器模式的产品是通过多个步骤来创建的,而且过程是可以改变的,而抽象工厂的产品是只有一个步骤,且步骤不可变。

用途:

  • 经常被用来创建组合结构。

优点:

  • 将一个复杂对象的创建过程封装起来;
  • 允许对象通过多个步骤来创建,并且可以改变过程;
  • 向客户隐藏产品内部的表现;
  • 产品的实现可以被替换,因为客户只看到一个抽象的接口。

缺点:

  • 与工厂模式相比,生成器模式创建对象的客户,需要具备更多的领域知识。