zoukankan      html  css  js  c++  java
  • Builder 解析 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

    源自:http://www.blogjava.net/flustar/archive/2007/12/03/builder.html
    Builder模式定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 刚接触到这个模式的时候,实在搞不明白它的意思,有什么用。于是,上网google了一圈,终于得到这个大家普遍认可的解释: 建造模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节。 下面举一个例子来说明这个模式的使用,代码如下: import java.util.ArrayList; interface Builder{ public void buildPartA(); public void buildPartB(); public void buildPartC(); public Product getProduct(); } class Product{ private ArrayList<String> parts=new ArrayList<String>(); public void add(String part){ parts.add(part); } public void show(){ System.out.println("Product有以下几部分构成:"); for(String s:parts){ System.out.println(s); } } } class Worker implements Builder{ private Product product; public void buildPartA() { product=new Product(); product.add("A部分"); } public void buildPartB() { product.add("B部分"); } public void buildPartC(){ product.add("C部分"); } public Product getProduct(){ return product; } } class Designer{ public void order(Builder builder){ builder.buildPartA(); builder.buildPartB(); builder.buildPartC(); } } public class Test { public static void main(String[] args) { Designer designer=new Designer(); Builder builder=new Worker(); designer.order(builder); Product product =builder.getProduct(); product.show(); } } 输出结果如下: Product有以下几部分构成: A部分 B部分 C部分 从这个例子我们可以看出Builder模式,是把建造对象的过程分成一部分一部分来完成的。 小结:Builder模式主要是为了将构建复杂对象的过程和它的部件解耦。使得我们不用去关心每个部件是如何组装的。

  • 相关阅读:
    Oracle列转行函数使用
    JavaScript笔记整理
    23种设计模式之桥梁模式
    23种设计模式之状态模式
    23种设计模式之解释器模式
    23种设计模式之备忘录模式
    23种设计模式之访问者模式
    23种设计模式之观察者模式
    23种设计模式之组合模式
    23种设计模式之适配器模式
  • 原文地址:https://www.cnblogs.com/wblade/p/1691433.html
Copyright © 2011-2022 走看看