建造模式是对象的创建模式。它可以将一个产品的内部表象与产品的生成过程分割开来,从而可以是一个建造过程生成具有不同的内部表象的产品对象。
由于建造零件的过程很复杂,因此,这些零件的建造过程往往被“外部化”到另一个乘坐建造者的对象里,建造者对象返还给客户端的是一个全部零件都建造完毕的产品对象。它将产品的结构和建造过程对客户端隐藏起来。
建造模式的四种角色:
抽象建造者(Abstract Builder)角色,给出一个抽象解耦,以规范产品对象的各个组成成分建造。具体建造者类必须实现这个接口锁要求的两种方法:一种是建造方法,另一种是结果返还方法。有多少零件就应该有多少建造方法。
具体建造者(Concrete Builder)角色,担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序调用下创建产品实例。它要完成的任务包括:
A.实现抽象建造者锁声明的接口,给出一步一步地完成创建产品实例的操作;
B.在建造完成之后,提供产品实例。
导演者(Director)角色,调用具体建造者角色以创建产品对象,它与客户端打交道。
产品(Product)角色,它是建造中的复杂对象。
下面以一个发送邮件的系统为例,分析集中角色的关系,它的类图如下:
其中抽象建造者角色是Builder类,它的两个子类GoodbyeBuilder、WelcomeBuilder作为具体建造者,导演角色Director,AutoMessage作为复杂产品的抽象类,它的两个子类GoodbyeMessage,WelcomeMessage作为复杂产品对象。
客户端负责创建导演者和具体建造者对象。
空的零件建造方法:具有不相同数目的零件的产品也可以使用建造模式,如果一些产品零件较少,可以使用空的零件方法来忽略没有的零件。
省略抽象建造者角色:如果可以系统只有一个建造者角色的话,可以省略掉抽象建造者角色。
省略导演角色:在具体建造者角色只有一个的情况下,如果已经省略了抽象产品角色,那么可以进一步省略掉导演者角色。此时导演者类中的产品构造方法由具体产品角色自己实现。
参考文献:《Java与模式》,阎宏,第十九章,建造者模式。
分享到:
相关推荐
设计模式之建造者模式代码示例,
c++实现建造者模式,可直接运行
这个http://blog.csdn.net/dawanganban/article/details/9990405博客中java设计模式的源代码。下载前请先看《设计模式——建造者模式》一文。
设计模式C++学习之建造者模式(Builder)
设计模式之建造者模式,这个实例能让你尽快理解和掌握建造者模式的运用和原理
建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表现。这就是建造者模式。 建造者模式可以把一个产品的内部表象与产品的生成过程分隔开来,从而可以使一个建造过程就可以生成...
ios 进阶 建造者模式 学习的好资料 设计模式快速学习
java 设计模式 建造者模式,希望对大家理解设计模式有帮助
C#设计模式之建造者模式应用实例
java 建造者模式代码
Java 常见创建型模式中的建造者模式及其实际开发中的变种模式
设计模式例子,观察者模式,建造者模式,一些实践的例子,通俗易懂.
简单易懂的C++建造者设计模式举例,对于初学设计模式的同学有很大帮助
qt5 编写的建造者模式程序,适用于使用c++学习设计模式的同学
java 建造者模式 源码 ,一个小例子
Java设计模式-建造者模式详解
设计模式-建造者模式(讲解及其实现代码)
java设计模式【之】建造者模式【源码】【场景:车辆组装】 将复杂的对象构建,与对象的使用进行分离 用户只需要通过简单流程即可创建出对象 方法调用顺序,步骤的不同实现 优点:封装性号,创建和使用分离,扩展性...
建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。