建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
1. Builder:建造者抽象接口类,为创建一个产品对象的各个部件指定的抽象接口。
2. ConcreteBuilder:具体建造者,实现Builder接口,构造和装配各个部件。
3. Product:产品类,具体的产品角色
4. Director:指挥者类,构建一个使用Builder接口的对象
/**
* 产品类:由具体的部件组成。
*
*/
public class Product {
public List<String> parts = new ArrayList<String>();
// 添加产品部件
public void add(String part){
parts.add(part);
}
//列出所有的产品部件
public void show(){
System.out.println("----产品创建-----");
for(String part:parts){
System.out.println(part);
}
}
}
/**
* 抽象建造者类
*
*/
public abstract class Builder {
//确定产品由二个部件组成:partA和partB
public abstract void builderA();
public abstract void builderB();
public abstract Product getResult();
}
/**
* 具体建造者类1(建造两个具体的部件是A和B)
*
*/
public class ConcreteBuilder1 extends Builder{
private Product product = new Product();
@Override
public void builderA() {
product.add("部件A");
}
@Override
public void builderB() {
product.add("部件B");
}
@Override
public Product getResult() {
return product;
}
}
/**
* 具体建造者类2(建造两个具体的部件是X和Y)
*
*/
public class ConcreteBuilder2 extends Builder{
private Product product = new Product();
@Override
public void builderA() {
product.add("部件X");
}
@Override
public void builderB() {
product.add("部件Y");
}
@Override
public Product getResult() {
return product;
}
}
/**
* 指挥者类,用来控制建造过程,也用来隔离用户与建造过程的关联。
*
*/
public class Director {
public void construct(Builder builder){
builder.builderA();
builder.builderB();
}
}
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Director director = new Director();
ConcreteBuilder1 c1 = new ConcreteBuilder1();
ConcreteBuilder2 c2 = new ConcreteBuilder2();
// 用concreteBuilder1的方法创建产品
director.construct(c1);
Product product = c1.getResult();
product.show();
// 用concreteBuilder2的方法创建产品
director.construct(c2);
product = c2.getResult();
product.show();
}
}
- 大小: 20.1 KB
分享到:
相关推荐
c++实现建造者模式,可直接运行
设计模式之建造者模式代码示例,
这个http://blog.csdn.net/dawanganban/article/details/9990405博客中java设计模式的源代码。下载前请先看《设计模式——建造者模式》一文。
建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表现。这就是建造者模式。 建造者模式可以把一个产品的内部表象与产品的生成过程分隔开来,从而可以使一个建造过程就可以生成...
java设计模式【之】建造者模式【源码】【场景:车辆组装】 将复杂的对象构建,与对象的使用进行分离 用户只需要通过简单流程即可创建出对象 方法调用顺序,步骤的不同实现 优点:封装性号,创建和使用分离,扩展性...
设计模式之建造者模式,这个实例能让你尽快理解和掌握建造者模式的运用和原理
C#设计模式之建造者模式应用实例
java 设计模式 建造者模式,希望对大家理解设计模式有帮助
java 建造者模式代码
设计模式例子,观察者模式,建造者模式,一些实践的例子,通俗易懂.
Java 常见创建型模式中的建造者模式及其实际开发中的变种模式
java 建造者模式 源码 ,一个小例子
ios 进阶 建造者模式 学习的好资料 设计模式快速学习
设计模式-建造者模式(讲解及其实现代码)
qt5 编写的建造者模式程序,适用于使用c++学习设计模式的同学
设计模式C++学习之建造者模式(Builder)
建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
建造者模式 由四部分组成: 1.Director(指挥者): 如果创建对象的流程所在 2.Builder(抽象接口): 创建对象要实现的细节,流程依赖着细节 3.ConcreteBuilder(具体构建对象): 创建对象的具体细节实现 4.Product(具体...
13建造者模式.zip