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模式主要是为了将构建复杂对象的过程和它的部件解耦。使得我们不用去关心每个部件是如何组装的。

  • 相关阅读:
    CodeForces 347B Fixed Points (水题)
    CodeForces 347A Difference Row (水题)
    CodeForces 346A Alice and Bob (数学最大公约数)
    CodeForces 474C Captain Marmot (数学,旋转,暴力)
    CodeForces 474B Worms (水题,二分)
    CodeForces 474A Keyboard (水题)
    压力测试学习(一)
    算法学习(一)五个常用算法概念了解
    C#语言规范
    异常System.Threading.Thread.AbortInternal
  • 原文地址:https://www.cnblogs.com/wblade/p/1691433.html
Copyright © 2011-2022 走看看