设计形式之建造者(builder)模式

设计模式之建造者(builder)模式


设计形式之建造者(builder)模式

抽象建造者:

public interface Builder {

  protected Product pro = new Product();

  void buildPartA();   //创建部件A  比如创建汽车车轮
  
  void buildPartB();  //创建部件B 比如创建汽车方向盘
  
  void buildPartC();  //创建部件C 比如创建汽车发动机
  
  Product getResult(){
	    return pro;
    };
		//返回最后组装成品结果 (返回最后装配好的汽车)
  		//成品的组装过程不在这里进行,而是转移到下面的Director类中进行.
  		//从而实现了解耦过程和部件
} 

 具体建造者:

public class ConcreteBuilder implements Builder {

  Part partA, partB, partC;

  public void buildPartA() {  	
	    pro.setXX()...    //此处装配Product
  };

  public void buildPartB() {
    //这里是具体如何构建partB的代码
  };

   public void buildPartC() {
    //这里是具体如何构建partB的代码
  };
  
}

 指导者:

public class Director {

  private Builder builder;

  public Director( Builder builder ) {
    this.builder = builder;
  }

  // 将部件partA partB partC最后组成复杂对象
  //这里是将车轮 方向盘和发动机组装成汽车的过程
  public void construct() {
    builder.buildPartA();
    builder.buildPartB();
    builder.buildPartC();
  }

} 
 

使用:

ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director( builder );

director.construct();
Product product = builder.getResult(); 
 

省略指导者:


设计形式之建造者(builder)模式

 

参考:http://blog.csdn.net/joyney/article/details/4000741

http://www.jdon.com/designpatterns/builder.htm