抽象建造者:
- 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();
省略指导者: