建造(Builder)模式

来源:互联网 发布:优盘格式化数据恢复 编辑:程序博客网 时间:2024/06/11 19:58

建造模式:将一个产品的内部表象与产品的生成过程分割开来。

产品的内部表象:一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,通常又叫做产品的内部表象。

有哪些情况要使用建造模式:

  1. 需要生成的产品对象有复杂的内部结构。每一个内部成分本身可能是对象,也可以仅仅是一个对象的一个组成部分。
  2. 需要生成的产品对象的属性相互依赖。建造模式可以强制实行一种分步骤进行的建造过程,因此,如果产品对象的一个属性必须在另一属性被赋值之后才可以被赋值,使用建造模式便是一个很好的设计思想。
  3. 在对象创建过程中会使用到系统中的其他一些对象,这些对象在产品对象的创建过程中不易得到。

同时,使用建造模式主要有以下几个效果(好处):

  • 使得产品的内部表象可以独立的变化。使客户端不必知道产品内部组成的细节。
  • 每一个Builder都有相对独立,而与其的Builder无关。
  • 所建造的最终产品易于控制。

建造模式的结构

类图与角色

  • 抽象建造者(Builder)角色:给定一个抽象接口,以规范产品对象的各个组成成分的建造。
  • 具体建造者(CreateBuiler)角色:实现抽象建造者,提供产品的实例。
  • 导演者角色:担任这个角色的类调用具体建造者角色以创建产品对象。
  • 产品角色:产品便是建造中复杂对象。一般来说,一个系统中会有多于一个的产品类,而且这些产品类不一定共同的接口,而完全可以不相关联的。
原创粉丝点击