1、抽象建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的建造。一般而言,此接口独立于应用程序的商业逻辑。
2、具体建造者(Concrete Builder)角色:担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序调用下创建产品的实例。这个角色要完成的任务包括:1)实现抽象建造者Builder所声明的接口,给出一步一步地完成建造产品实例的操作。2)在建造过程完成后,提供产品的实例。
3、导演者(Director)角色:担任这个角色的类调用具体建造者角色以创建产品对象。应当指出的是,导演者角色并没有产品类的具体知识,真正拥有产品类的具体知识的是具体建造者角色。
4、产品(Product)角色:产品(Product)便是建造中的复杂对象。一般来说,一个系统中会有多于一个的产品类,而且这些产品类并不一定有共同的接口,而完全可以是不相关联的。
package com.javapatterns.builder;
public class Director
{
private Builder builder;
public Director(Builder builder)
{
this.builder = builder;
}
public void construct()
{
builder = new ConcreteBuilder();
builder.buildPart1();
builder.buildPart2();
builder.retrieveResult();
}
}
package com.javapatterns.builder;
abstract public class Builder
{
public abstract void buildPart1();
public abstract void buildPart2();
public abstract Product retrieveResult();
}
package com.javapatterns.builder;
public class ConcreteBuilder extends Builder
{
private Product product = new Product() ;
public void buildPart1()
{
//build the first part of the product
}
public void buildPart2()
{
//build the second part of the product
}
public Product retrieveResult()
{
return product;
}
}
package com.javapatterns.builder;
public class Product
{
public Product()
{
//Write your code here
}
}
在以下情况下应当使用建造模式:
1、需要生成的产品对象有复杂的内部结构。
2、需要生成的产品对象的属性相互依赖。建造模式可以强制实行一种分步骤进行的建造过程。因此,如果产品对象的一个属性必须在另一个属性被赋值之后才可以被赋值,使用建造模式便是一个很好的设计思想。
3、在对象创建过程中会使用到系统中的其它一些对象,这些对象在产品对象的创建过程中不易得到。
同时,使用建造模式主要有以下的效果人:
1)建造模式的使用使得产品的内部表象可以独立地变化。使用建造模式可以使客户端不必知道产品内部组成的细节。
2)每一个Builder都相对独立,而与其它的Builder无关。
3)模式所建造的最终产品更易于控制
分享到:
相关推荐
Java设计模式:Builder模式应用案例[整理].pdf
Java设计模式:Builder模式应用案例[借鉴].pdf
23种设计模式的java实现-Builder
设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计...
java设计模式之Builder&Decorator,java设计模式之Builder&Decorator
《java设计模式(第2版)》通过一个完整的java项目对经典著作design patterns一书介绍的23种设计模式进行了深入分析与讲解,实践性强,却又不失对模式本质的探讨。本书创造性地将这些模式分为5大类别,以充分展现各个...
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern) 抽象工厂模式...
Java 设计模式-建造者模式(Builder)结合Android小知识讲解,简单明了
设计模式 t06Builder
在设计模式中对Builder模式的定义是用于构建复杂对象的一种模式,所构建的对象往往需要多步初始化或赋值才能完成。那么,在实际的开发过程中,我们哪些地方适合用到Builder模式呢?其中使用Builder模式来替代多参数...
各个设计模式的介绍,非常不错 Java与设计模式 设计模式之Factory -工厂模式设计模式之FACTORY METHOD -工厂模式設計模式之Builder -建造模式
首先介绍了Java中面向对象特性和技术,逐个分析Abstract Factory;Builder;Prototype;Singleton;Adapter (对象);Bridge;Composite;Decorator;Facade;Flyweight;Proxy;Iterator;Observer等模式
java设计模式【之】建造者模式【源码】【场景:车辆组装】 将复杂的对象构建,与对象的使用进行分离 用户只需要通过简单流程即可创建出对象 方法调用顺序,步骤的不同实现 优点:封装性号,创建和使用分离,扩展性...
demo中使用了设计模式中的建造者模式,代码非常精简,本地可正常运行,亲测有效!
23种模式(Pattern) 1、创建形模式: 1)、单用型:Singleton 2)、工厂方法型:Factory Method 3)、抽象工厂型:...4)、装饰模式:Decorator 3、行为型模式 1)、策略模式:Strategy 2)、观察者模式:Observer
【IT十八掌徐培成】Java基础第10天-02.builder设计模式-StringBuilder-包装类.zip
压缩包包含内容: 1.java设计模式.chm 其中包含各个设计模式的举例 2.PPT 包含java设计模式的PPT讲解 3.JSTL 包含JSTL的样例、PPT、及学习讲解
Factory模式,Prototype模式,Builder 模式,Singleton模式,Facade模式,Proxy模式,Adapter模式,Composite模式,Decorator模式....
用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...
Builder ( 建造者模式 ) Prototype ( 原型模式 ) Adapter ( 适配器模式 ) Bridge ( 桥接模式 ) Composite ( 组合模式 ) Decorator ( 装饰模式 ) Facade ( 外观模式 ) Flyweight ( 享元模式 ) Proxy ( 代理...