设计形式之建造者(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();
省略指导者:
参考:http://blog.csdn.net/joyney/article/details/4000741
http://www.jdon.com/designpatterns/builder.htm