`
liujiawinds
  • 浏览: 136399 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

读《Java与模式》笔记之建造者模式

 
阅读更多

建造模式是对象的创建模式。

 

建造模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。

 

建造者(Bulider):给出一个抽象接口,以规范产品对象的各个组成成分的建造。一般而言,此接口独立于应用程序的商业逻辑。模式中直接创建产品对象的是具体建造者(ConcreteBuilder)角色。具体建造者类必须实现这个接口所要求的建造方法和结果返回方法。

 

具体建造者(ConcreteBuilder):担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序调用下创建产品的实例。这个角色要完成的任务包括:

1.实现抽象建造者Builder所声明的接口,给出一步一步地完成创建产品实例的操作。

2.在建造过程完成后,提供产品的实例。

 

导演者(Director):担任这个角色的类调用具体建造者以创建产品对象。应当指出的是,导演者角色并没有产品类的具体知识,真正拥有产品类的具体知识的是具体建造者角色。

 

产品:产品(Product)是建造中的复杂对象。一般来说,一个系统中会有>=1个产品类,而且这些产品类并不一定有共同的接口,而且完全是不相关联的。

 

 

package org.liujia.basic.designpatterns.anotherbuilder;

public class Director {
	private Builder builder;
	public void construct(){
		builder = new ConcreteBuilder();
		//建造零件
		builder.buildPart1();
		builder.buildPart2();
		//获得产品
		Product  product = builder.retrieveResult();
		
	}
}

 

 

package org.liujia.basic.designpatterns.anotherbuilder;

public abstract class Builder {
	
	/**建造第一部分
	 * 
	 */
	public abstract void buildPart1();
	
	/**建造第二部分
	 * 
	 */
	public abstract void buildPart2();
	
	/**返回结果对象
	 * 
	 */
	public abstract Product retrieveResult();
	
}

 

 

package org.liujia.basic.designpatterns.anotherbuilder;

public class ConcreteBuilder extends Builder{
	
	private Product product = new Product();
	@Override
	public void buildPart1() {
//		建造第一部分 如:product.name=xxxxxx;
	}

	@Override
	public void buildPart2() {
//		建造第二部分
	}

	@Override
	public Product retrieveResult() {
		return product;
	}

}

 

 

package org.liujia.basic.designpatterns.anotherbuilder;

public class Product {
	//Product的一些属性
}

 

如果有多个产品类的话,就多写几个ConcreteBuilder ,每个ConcreterBuilder生成对应的产品。

每个产品类都实现一个共同的抽象接口(Product),这样retrieveProduct的返回值都可以写成Product,但是却能获得不同的产品。

 

 

 

简化后:

            简化后Director和抽象的Builder被省略掉。

 

 

package org.liujia.basic.designpatterns.builder.simplifiedeidtion;

public class Client {
	
	private static Builder builder ;
	
	public static void main(String[] args) {
		builder = new Builder()	;
		builder.construct();
		Product product = builder.retrieveResult();
	}
	
}

 

 

package org.liujia.basic.designpatterns.builder.simplifiedeidtion;

public class Builder {
	private Product product = new Product() ;
	
	public void buildPart1(){
		
	}
	public void buildPart2(){
		
	}
	public Product retrieveResult(){
		return product;
	}
	public void construct(){
	
		buildPart1();
		buildPart2();
		
	}
}

 

 

package org.liujia.basic.designpatterns.builder.simplifiedeidtion;

public class Product {
	
}

 

 

 

仅作为笔记,并给不懂的人做个参考。牛B的人就不要看了。

 

 

 

 

 

 

分享到:
评论

相关推荐

    根据《JAVA与设计模式》整理的笔记及示例代码

    4. 建造者模式:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. 原型模式:通过复制已有对象来创建新对象。 三、结构型模式 1. 代理模式:为其他对象提供一种代理以控制对这个对象的...

    JAVA与模式读书笔记。

    在《JAVA与模式读书笔记》中,我们探讨的是Java编程语言与设计模式的结合应用,这对于深入理解面向对象编程和提升软件开发能力至关重要。设计模式是软件工程中的最佳实践,它们是解决常见问题的模板,可以提高代码的...

    Java设计模式学习笔记.pdf

    3. 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 4. 原型模式:通过复制现有的实例来创建新的实例,避免了重复的初始化操作。 5. 单例模式:确保一个类只有一个实例,...

    图解Java设计模式笔记总结word版本.rar

    本资料“图解Java设计模式笔记总结word版本”聚焦于通过图文并茂的方式,深入浅出地解析各种设计模式。以下是基于这个主题的详细知识点讲解: 1. **设计模式的分类** - **创建型模式**:如单例(Singleton)、工厂...

    图解java设计模式_学习笔记_java开发

    3. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。适用于构建步骤多且复杂的情况。 4. **适配器模式**:将一个类的接口转换成客户希望的另一个接口,使得原本因接口不兼容...

    计算机后端-Java-图解java设计模式笔记.zip

    本压缩包"计算机后端-Java-图解java设计模式笔记"提供了对Java设计模式的深入理解,通过图形化的方式帮助开发者更好地理解和应用这些模式。 1. **单例模式**:保证一个类只有一个实例,并提供一个全局访问点。常见...

    java设计模式源码和笔记(第一部分)

    7. **建造者模式**:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。`BuilderPattern.java`可能是示例代码,笔记会阐述如何使用建造者构建对象。 8. **策略模式**:定义一系列的算法,并...

    Java设计模式尚硅谷笔记

    4. 建造者模式(Builder):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在Java中,Builder模式常用于构造复杂的对象,如StringBuilder。 5. 适配器模式(Adapter):将一个类的接口转换...

    java设计模式学习笔记,以及各种模式的代码实现

    4. **构造器模式**(也称为建造者模式):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。它通常用于创建具有多个构建步骤的对象。 5. **工厂方法模式**:定义一个用于创建对象的接口,让...

    300Java设计模式部分学习笔记

    3. 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 4. 原型模式(Prototype Pattern):通过复制一个现有的实例来创建新的实例,用于减少创建对象的...

    java23种设计模式,3套视频加1个ppt

    4. **建造者模式(Builder)**:将一个复杂对象的构建与其表示分离,使同样的构建过程可以创建不同的表示。 5. **原型模式(Prototype)**:通过复制已有对象来创建新对象。 **结构型模式**: 1. **代理模式(Proxy...

    Java 版设计模式学习笔记-java-design-patterns.zip

    建造者模式将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在Java中,通过构建器和导演角色,我们可以更灵活地创建对象。 五、原型模式 原型模式允许用原型实例来创建新对象,通过克隆已有...

    设计模式笔记

    - 建造者模式:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - 原型模式:通过复制已有对象来创建新对象。 2. 结构型模式:这类模式关注如何组合类和对象以构建更大的结构。例如: ...

    java学习笔记及设计模式

    4. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. **装饰器模式**:动态地给一个对象添加一些额外的职责,提供了比继承更具弹性的扩展对象功能的方式。 6. **代理...

    java面试题 学习笔记

    1. 创建型模式:单例、工厂、抽象工厂、建造者、原型等模式。 2. 结构型模式:适配器、装饰器、代理、桥接、组合、外观、享元等模式。 3. 行为型模式:观察者、模板方法、策略、状态、职责链、命令、迭代器、备忘录...

    尚硅谷设计模式源码笔记课件.zip

    1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、...:单例模式(8种实现)、抽象工厂模式、原型模式、建造者模式、工厂模式...

    尚硅谷_韩顺平_图解Java设计模式

    后续章节会继续深入探讨其他六大原则,以及23种经典设计模式,如工厂模式、单例模式、建造者模式、观察者模式等。这些模式是软件开发中的常用工具,掌握它们对于提升软件工程的实践能力至关重要。此外,这份笔记还会...

    java 设计模式自学的笔记的

    4. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. **原型模式**:用原型实例指定创建对象的种类,并通过复制这些原型创建新的对象。 6. **适配器模式**:将一个类的...

    23种设计模式学习笔记及源码

    4. **建造者模式**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在Java中,`Builder`类用于构建复杂的对象结构。 5. **原型模式**:用原型实例指定创建对象的种类,并且通过复制...

Global site tag (gtag.js) - Google Analytics