建造模式是对象的创建模式。它可以将一个产品的内部表象与产品的生成过程分割开来,从而可以是一个建造过程生成具有不同的内部表象的产品对象。
由于建造零件的过程很复杂,因此,这些零件的建造过程往往被“外部化”到另一个乘坐建造者的对象里,建造者对象返还给客户端的是一个全部零件都建造完毕的产品对象。它将产品的结构和建造过程对客户端隐藏起来。
建造模式的四种角色:
抽象建造者(Abstract Builder)角色,给出一个抽象解耦,以规范产品对象的各个组成成分建造。具体建造者类必须实现这个接口锁要求的两种方法:一种是建造方法,另一种是结果返还方法。有多少零件就应该有多少建造方法。
具体建造者(Concrete Builder)角色,担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序调用下创建产品实例。它要完成的任务包括:
A.实现抽象建造者锁声明的接口,给出一步一步地完成创建产品实例的操作;
B.在建造完成之后,提供产品实例。
导演者(Director)角色,调用具体建造者角色以创建产品对象,它与客户端打交道。
产品(Product)角色,它是建造中的复杂对象。
下面以一个发送邮件的系统为例,分析集中角色的关系,它的类图如下:
其中抽象建造者角色是Builder类,它的两个子类GoodbyeBuilder、WelcomeBuilder作为具体建造者,导演角色Director,AutoMessage作为复杂产品的抽象类,它的两个子类GoodbyeMessage,WelcomeMessage作为复杂产品对象。
客户端负责创建导演者和具体建造者对象。
空的零件建造方法:具有不相同数目的零件的产品也可以使用建造模式,如果一些产品零件较少,可以使用空的零件方法来忽略没有的零件。
省略抽象建造者角色:如果可以系统只有一个建造者角色的话,可以省略掉抽象建造者角色。
省略导演角色:在具体建造者角色只有一个的情况下,如果已经省略了抽象产品角色,那么可以进一步省略掉导演者角色。此时导演者类中的产品构造方法由具体产品角色自己实现。
参考文献:《Java与模式》,阎宏,第十九章,建造者模式。
分享到:
相关推荐
《设计模式学习笔记》主要探讨了GOF的23种设计模式以及类设计的基本原则,旨在帮助开发者理解和应用这些经过时间验证的成熟解决方案。设计模式是面向对象软件设计中的核心概念,它们为解决常见的设计问题提供了标准...
4. **建造者模式**:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。适用于构建过程复杂的对象。 5. **原型模式**:通过复制已有对象来创建新对象,减少创建新对象的成本,特别是当创建新...
4. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。适用于构造过程较为复杂的对象。 5. **原型模式**:通过复制已有对象来创建新对象,减少类的实例化次数,提高性能。常...
4. **建造者模式**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在Java中,`Builder`类用于构建复杂的对象结构。 5. **原型模式**:用原型实例指定创建对象的种类,并且通过复制...
### 设计模式学习笔记 #### 一、简单工厂模式 (Simple Factory) **类图与描述:** 简单工厂模式的核心在于存在一个工厂类,这个工厂类能够根据不同的输入参数返回不同的对象实例。简单工厂模式并不涉及继承关系,...
3. 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 4. 原型模式:通过复制现有的实例来创建新的实例,避免了重复的初始化操作。 5. 单例模式:确保一个类只有一个实例,...
以下是对“C#设计模式学习笔记”中涉及的一些关键知识点的详细解释。 1. **设计模式的基本概念**: 设计模式是一种在特定上下文中已被证明有效的解决方案模板,它描述了如何在软件设计中解决常见问题。设计模式...
在这个“#资源大人分享计划# 设计模式学习笔记.rar”压缩包中,我们可以期待找到一系列关于设计模式的详细学习资料,包括定义、类图、代码示例以及各种使用场景,这些都将帮助我们深入理解并掌握设计模式。...
### 设计模式学习笔记 #### 引言 设计模式(Design Patterns)是在软件设计领域内广泛应用的一种实践指南,它提供了一系列解决常见问题的方案。设计模式可以被理解为面向对象软件设计的经验总结,是对特定面向对象...
4. **建造者模式**:在构建复杂的对象如Intent时,建造者模式能帮助我们分步骤地构建对象,同时保持代码的清晰。Android IntentBuilder就是建造者模式的一个例子,允许我们逐步添加动作、数据、类别等信息。 5. **...
这个“Java版设计模式学习笔记”涵盖了多种设计模式,旨在帮助开发者更好地理解和应用这些模式。让我们深入探讨一下其中可能包含的关键知识点。 一、单例模式 单例模式确保一个类只有一个实例,并提供一个全局访问...
"GoF 23种设计模式学习笔记" 是一个深入探讨这23个经典设计模式的资源,这些模式最初由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位作者在1994年的著作《设计模式:可复用面向对象软件的基础》中...
4. **构造器模式**(也称为建造者模式):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。它通常用于创建具有多个构建步骤的对象。 5. **工厂方法模式**:定义一个用于创建对象的接口,让...
3. 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 4. 原型模式(Prototype Pattern):通过复制一个现有的实例来创建新的实例,用于减少创建对象的...
3. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。适用于构建步骤多且复杂的情况。 4. **适配器模式**:将一个类的接口转换成客户希望的另一个接口,使得原本因接口不兼容...
### 23种设计模式学习笔记 #### 一、软件设计模式的概念与意义 **概念:** 软件设计模式(Software Design Pattern),又称设计模式,是一套被广泛采用、经过整理和分类的代码设计经验总结。它针对软件设计过程中...
4. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. **装饰器模式**:动态地给一个对象添加一些额外的职责,提供了比继承更具弹性的扩展对象功能的方式。 6. **代理...
1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、...:单例模式(8种实现)、抽象工厂模式、原型模式、建造者模式、工厂模式...
根据给定的信息“图解设计模式,结城浩著学习笔记”,我们可以推断出这份文档主要涉及了设计模式的学习和理解。《图解设计模式》是一本由日本著名程序员结城浩撰写的书籍,该书以图形化的方式深入浅出地讲解了软件...