建造(Builder)模式
2008-06-29 20:45 is_wolf 阅读(137) 评论(0) 编辑 收藏 举报建造模式:将一个产品的内部表象与产品的生成过程分割开来。
产品的内部表象:一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,通常又叫做产品的内部表象。
有哪些情况要使用建造模式:
- 需要生成的产品对象有复杂的内部结构。每一个内部成分本身可能是对象,也可以仅仅是一个对象的一个组成部分。
- 需要生成的产品对象的属性相互依赖。建造模式可以强制实行一种分步骤进行的建造过程,因此,如果产品对象的一个属性必须在另一属性被赋值之后才可以被赋值,使用建造模式便是一个很好的设计思想。
- 在对象创建过程中会使用到系统中的其他一些对象,这些对象在产品对象的创建过程中不易得到。
同时,使用建造模式主要有以下几个效果(好处):
- 使得产品的内部表象可以独立的变化。使客户端不必知道产品内部组成的细节。
- 每一个Builder都有相对独立,而与其的Builder无关。
- 所建造的最终产品易于控制。
建造模式的结构
类图与角色
- 抽象建造者(Builder)角色:给定一个抽象接口,以规范产品对象的各个组成成分的建造。
- 具体建造者(CreateBuiler)角色:实现抽象建造者,提供产品的实例。
- 导演者角色:担任这个角色的类调用具体建造者角色以创建产品对象。
- 产品角色:产品便是建造中复杂对象。一般来说,一个系统中会有多于一个的产品类,而且这些产品类不一定共同的接口,而完全可以不相关联的。