`
iamxi
  • 浏览: 191548 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

学习:生成器(Builder)

阅读更多

用来构建复杂的实例,java的StringBuilder就是一个Builder模式的例子。

 

意图:

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

 

结构:


 

代码示例:

Builder类

public abstract class Builder {
	protected String product;
	
	public Builder() {
		product = new String("");
	}

	public void buildPart(String part) {
		//默认空实现
	}
	
	public String getResult() {
		return product;
	}
}

 

ConcreteBuilder类

public class ConcreteBuilder extends Builder {

	@Override
	public void buildPart(String part) {
		product += part;
	}
}
 

 

Director类

public class Director {
	private Builder builder;
	
	public Director(Builder builder) {
		this.builder = builder;
	}
	
	public void Construct() {
		for (int i = 0; i < 10; i++) {
			builder.buildPart("aaa");
		}
	}
	
	public String getResult() {
		return builder.getResult();
	}
}

 

调用

public class Client {

	public static void main(String[] args) {
		Director dir = new Director(new ConcreteBuilder());
		dir.Construct();
		System.out.println(dir.getResult());
	}
}

 

优点:

使你可以改变一个产品的内部表示;

它将构造代码和表示代码分开;

使你可对构造过程进行更精细的控制;

 

适用:

当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构造过程必须允许被构造的对象有不同的表示时。

 

相关模式:

    Abstract Factory和Builder比较相似。主要的区别是Builder模式着重于一步步构造一个复杂对象。而 Abstract Factory着重于多个系列的产品对象(简单的或是复杂的)。Builder在最后的一步返回产品,而对于 Abstract Factory来说,产品是立即返回的。

    Composite通常是用Builder生成的

  • 大小: 12.3 KB
分享到:
评论

相关推荐

    C#面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式)

    在C#中,Builder模式常常应用于游戏对象生成、配置文件解析、数据库记录映射等领域。例如,游戏中的角色创建,可能需要设置角色的属性、技能等,这些可以通过不同的Builder来实现;而在数据库操作中,ORM框架如...

    C#视频-面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式)

    Builder模式是一种创建型设计模式,它提供了一种...在观看“C#视频-面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式)”的视频教程时,可以深入理解Builder模式的工作原理,学习如何在实际项目中有效应用。

    Jirisoft.CodeBuilder C# 代码生成器源码

    《Jirisoft.CodeBuilder:C# 代码生成器的源码解析与应用探索》 C# 代码生成器,作为一种高效开发工具,可以帮助开发者自动生成符合特定规则或模板的代码,极大地提高了编码效率,减少了重复劳动。Jirisoft.Code...

    ACCP5.0 .Net代码生成器WF_CodeBuilder

    宏海科技代码生成器(1.0 bete) 使用说明: 采用三层模式生成代码 ,每个层都分为两部分 Auto文件夹为自动生成的完整代码,外面的为用户自己写方法用。 1: 先将三层搭建好(实在懒的话,一个项目也行),添加好引用,...

    转:Oracle Warehouse Builder

    4. **工作流调度**:OWB具有内置的工作流调度器,可以安排ETL任务在特定时间自动执行,实现数据仓库的自动化更新。 5. **性能优化**:OWB提供性能分析和调优工具,帮助用户监控和优化ETL过程,确保数据加载的效率和...

    design-patterns-builder:生成器设计模式

    生成器设计模式是一种软件设计模式,它允许我们分步骤创建复杂对象,而无需暴露其构建过程。这种模式在Java和其他面向对象语言...通过学习和实践这些示例,你可以更好地掌握生成器模式的原理和用法,提高你的编程能力。

    角色扮演游戏项目生成器插件:RPG Builder v2.1

    包含完整源代码,用于学习或扩展 32 + 个 AAA 级人形动画 100 + 个 YouTube 视频教程 一个第三人称动作 RPG 角色控制器 11 个合作伙伴 以下是一些主要特点: 战斗: 法术书(视频) 连击系统 变形 冲刺、翻滚、闪避 ...

    powerbuilder9.0生成二维码动态库与例子.zip

    PowerBuilder 9.0 是一款历史悠久的开发工具,主要用于构建企业级的应用程序。...通过学习和实践这个例子,你不仅可以掌握如何在 PB 中调用外部库,还能深入了解二维码的生成原理及其在应用程序中的应用。

    生成器模式代码示例

    3. **具体生成器(Concrete Builder)**:实现了抽象生成器的接口,负责具体的构建过程,并且可以返回一个完整的产品实例。 4. **导演(Director)**:它使用生成器接口来构建产品,但不直接与产品交互。导演类可以...

    PowerBuilder.9.0.参考手册(中文版)PDF

    10. **发布与部署**:学习如何打包和发布PowerBuilder应用程序,包括生成可执行文件、安装程序和部署策略。 11. **调试与优化**:掌握PowerBuilder的调试工具,包括设置断点、查看变量值和性能分析,以及如何优化...

    c++builder6安装包

    3. **C++编译器**:C++Builder 6内置的C++编译器支持C++标准,包括模板、异常处理、命名空间等特性,并且针对Windows平台进行了优化,生成的代码运行速度快。 4. **数据库支持**:C++Builder 6提供了丰富的数据库...

    iOS 生成器模式demo

    在iOS开发中,生成器模式(Builder Pattern)是一种设计模式,它允许我们分步骤构建复杂的对象,而无需暴露创建过程的复杂性。这种模式在处理需要多种构建方式或需要逐步构造对象的情况时特别有用。标题“iOS 生成器...

    dsp builder学习资料

    通过深入学习和实践“dsp builder学习资料”,开发者可以掌握如何利用MATLAB和DSP Builder进行高效、优化的数字信号处理硬件设计,从而在通信、图像处理、音频应用等领域实现高性能、低功耗的解决方案。同时,理解和...

    PowerBuilder6.0绿色便携版(无需安装,解压即用)

    8. **应用程序发布**:完成开发后,PowerBuilder可以生成可执行文件(.exe),供用户在没有PowerBuilder环境的机器上运行。 9. **便携性优势**:绿色版的PowerBuilder 6.0无需安装,只需解压到任何位置,避免了系统...

    c++builder精彩编程实例集锦

    9. **代码生成器和重构**:C++Builder提供了代码生成器,能够自动生成常见的代码结构,如事件处理函数。同时,它的重构工具可以帮助优化代码结构,提高代码质量。 10. **国际化和本地化**:C++Builder支持多语言...

    Borland C++Builder 入门教程 与《基础入门》100问

    4. **C++编译器**:Borland C++Builder的编译器支持C++标准,同时也针对Windows API进行了优化,生成的代码运行效率高。 接下来,我们通过《基础入门》100问来探讨一些常见问题: 1. **安装与配置**:如何安装...

    PowerBuilder9.0电子教程

    2. **开发环境**:PowerBuilder提供了一个集成开发环境(IDE),包括代码编辑器、对象浏览器、调试器、项目管理器等多个组件,使得开发过程更加高效。 ### 二、PowerBuilder 9.0新特性 1. **增强的数据窗口**:在...

    正则表达式自动生成器(regex builder)2.0.7z

    "正则表达式自动生成器"是一款能够帮助程序员快速构建和测试正则表达式的软件,它大大提高了编写正则表达式的效率。 该工具的版本为2.0,通过7z压缩格式提供,这表明它可以有效地压缩文件,减少存储空间的需求。7z...

    c++builder实例带有程序

    3. **RAD(快速应用开发)**:C++Builder以其快速应用开发能力著称,允许开发者通过拖放控件和自动代码生成来快速构建应用程序。学习如何利用这一特性可以大大提高开发效率。 4. **对象导向编程**:C++Builder基于...

    PowerBuilder Geting Start

    - **图形用户界面(GUI)构建器**:PowerBuilder内置了一个GUI构建器,使开发者能够通过拖放方式快速构建界面。 - **数据库连接**:支持多种数据库系统,包括但不限于Oracle、Microsoft SQL Server、DB2等。 - **...

Global site tag (gtag.js) - Google Analytics