标签:
1. 意图
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
2. 结构
此模式的结构如下图所示。
3. 参与者
4. 协作
下图的交互图说明了Builder和Director是如何与一个客户协作的。
5. 效果
以下是Builder模式的主要效果:
1) 它使你可以改变一个产品的内部表示 Builder对象提供给导向器一个构造产品的抽象接口。该接口使得生成器可以隐藏这个产品的表示和内部结构。它同时也隐藏了该产品是如何装配的。因为产品是通过抽象接口构造的,你在改变该产品的内部表示时所要做的只是定义一个新的生成器。
2) 它将构造代码和表示代码分开 Builder模式通过封装一个复杂对象的创建和表示方式提高对象的模块性。客户不需要知道定义产品内部结构的类的所有信息;这些类是不出现在Builder接口中的。每个ConcreteBuilder包含了创建和装配一个特定产品的所有代码。这些代码只需要写一次;然后不同的Director可以复用它以在相同部件集合的基础上构建不同的Product。
3) 它使你可对构造过程进行更精细的控制 Builder模式与一下子就生成产品的创建型模式不同,它是在导向者的控制下一步一步构造产品的。仅当该产品完成时导向者才从生成器中取回它。因此Builder接口相比其他创建型模式能更好地反应产品的构造过程。这使你可以更精细地控制构建过程,从而能更精细地控制所得产品的内部结构。
【摘自《设计模式 可复用面向对象软件的基础》机械工业出版社】
标签:
原文地址:http://www.cnblogs.com/moderate-fish/p/4510438.html