建造者模式
如果你需要将一个复杂对象的构建与他的表示分离,是的同样的构建过程可以创建不同的表示的意图时,我们需要应用于一个设计模式,建造者(Builder)模式,又叫生成器模式。建造者模式可以将一个产品的生成过程分割开来,从而可以是一个建造过程生成具有不同的内部对象。如果我们用了建造者模式,那么哟过户就只需要制定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道了。
建造者模式: (Builder) 将一个复杂对象的构建与他的表示分离,是的同样的构建过程可以创建不同的表示。
建造者模式的基本代码
public abstract class Builder {
public abstract void buildPartA();
public abstract void buildPartB();
public abstract Product getResult();
}
public class Product {
List<String> parts = new ArrayList<String>();
public void Add(String part){
this.parts.add(part);
}
public void show(){
System.out.println("产品创建--------------");
for (String part : parts) {
System.out.println(part);
}
}
}
public class ConcreteBuilder1 extends Builder {
private Product product = new Product();
@Override
public void buildPartA() {
product.Add("部件A");
}
@Override
public void buildPartB() {
product.Add("部件B");
}
@Override
public Product getResult() {
return this.product;
}
}
public class ConcreteBuilder2 extends Builder {
private Product product = new Product();
@Override
public void buildPartA() {
product.Add("部件X");
}
@Override
public void buildPartB() {
product.Add("部件Y");
}
@Override
public Product getResult() {
return this.product;
}
}
public class Director {
public void construct(Builder builder){
builder.buildPartA();
builder.buildPartB();
}
}
测试代码
public class Test {
public static void main(String[] args) {
Director director = new Director();
Builder b1 = new ConcreteBuilder1();
Builder b2 = new ConcreteBuilder2();
director.construct(b1);
Product p1 = b1.getResult();
p1.show();
director.construct(b2);
Product p2 = b2.getResult();
p2.show();
}
}
Builder是为创建一个Product对象的各个部件指定的抽象接口。
ConcreteBuilder是具体建造者,实现Builder接口,构造和装配各个部件。
Product是具体的产品。
Director是指挥者,它是构建一个使用Builder接口的对象。
建造者模式主要是用于创建一些复杂的对象,这些对象内部构件间的建造顺序通常是稳定的,单对象内部的构建通常面临着复杂的变化。
建造者模式的好处就是使得建造代码宇表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要在定义一个具体的建造者就可以了。
- 大小: 21 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