设计模式之Builder模式

原创 2006年06月07日 16:00:00

Builder模式是将构建复杂对象的过程和它的部件解耦.

因为一个复杂的对象,不但有很多大量组成部分,如汽车,有很多部件:车轮 方向盘 发动机还有各种小零件等等,部件很多,但远不止这些,如何将这些部件装配成一辆汽车,这个装配过程也很复杂(需要很好的组装技术),Builder模式就是为了将部件和组装过程分开.

理解Builder模式:

        生产流水线:以前是手工业作坊式的人工单个单个的生产零件然后一步一步组装做,好比有了工业革命,现在都由生产流水线代替了。如要造丰田汽车,先制定汽车的构造如由车胎、方
向盘、发动机组成。再以此构造标准生产丰田汽车的车胎、方向盘、发动机。然后进行组装。最后得到丰田汽车.

举例:

看到网上一个造房子的例子比较好理解,所以就拿来借用下.造房子本身比较复杂,因为各个部件如门,窗,墙,栋梁等需要建筑工人的构造,还有各个部件的组装就更显得重要而复杂,所以一般都要有设计师来画图来指挥各个部件的组装.而设计师本身也不干活,光是下命令,这里砌一堵墙,这里砌一扇门,这样建筑工人开始建设,最后,我可以向建筑工人要房子了。在这个过程中,设计师是什么也没有,除了他在脑子里的设计和命令,所以要房子也是跟建筑工人要,记住了!

package builder;

public interface Builder
{
public  void makeWindow();
public  void makeFloor();
public  Room  getRoom();

}


/*************************************************************/
package builder;

public class Designer {

  public Designer() {
  }
  public void order(Builder  builder) 
{
  builder.makeWindow();
  builder.makeFloor();

}

 }

/*************************************************************/
package builder;
public class Worker implements Builder{
  private  String window="";
  private  String floor="";
  public Worker() {
  }
    public  void makeWindow(){
  window=new String("window");
  }
  public  void makeFloor(){
  floor=new String("floor");
  }
  public  Room  getRoom()
  {
  if((!window.equals(""))&&(!floor.equals("")))
    {
    System.out.println("room ready!");
    return new Room();
    }
  else return null;
  }
}

/*************************************************************/
package builder;
public class Room {
  private  String window="";
  private  String floor="";
  public Room() {
  }
  }
/*************************************************************/

package builder;

public class Client {

  public Client() {
  }
  public static void main(String[] args) {
     Builder worker=new Worker();
     Designer  designer=new      Designer();
     designer.order(worker);
     worker.getRoom();
  }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Builder设计模式设置自定义Dialog

Builder设计模式设置自定义Dialog

Java设计模式之Builder和Decorator

Java设计模式                        &#...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

设计模式学习(三) —— Builder

一、概述 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对...

设计模式之builder

前几天写了一个servlet,是这样的,获得一个消息,然后将消息的拆包,获得一些信息,然后利用这些信息返回4种结果。一开始,我写了各种乱的代码,后来经大神指导,学习了build模式。       下面...

Builder构造者设计模式

原文出处:http://blog.csdn.net/yanbober/article/details/45338041概述建造者模式将客户端与包含多个组成部分的复杂对象的创建过程分离,客户端压根不用知...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)