我们假设,每个汽车都有车轮,发动机等部件组成,如果不使用模式,按照一般的方法, 在构造函数中,创建部件车轮,发动机,并且然后进行了组装。 下面以一辆Polo为例: public class Polo{ //在构造函数中,创建部件,然后进行组装 public Polo(){ //创建部件 车轮 obj1=new 车轮(); //进行组装部件 this.车轮s.add(obj1);
//该类负责创建部件,具体的由子类实现 public class Builder{ public void builder车轮(int n){}; public void builder发动机(){}; } //该类实现组装过程 public class Director{ private Builder builder=null;
public class Director(Builder builder){ this.builder=builder; }
public void 组装过程(){ builder.builder车轮(4); builder.builder车轮(); } } 在Director中使用builder接口,然后按照一定规则进行组装,大家可以 看出这是针对接口进行编程的体现。我们看具体的builder public class PoloBuilder extends Builder{ private Polo polo=new Polo(); public void builder车轮(int n){ for(int i=0;i<n;i++){ 车轮 obj1=new 车轮(); polo.车轮s.add(obj1); } } public void builder发动机(){ 汽车发动机 objNessan=new 汽车发动机(); polo.汽车发动机=objNessan; } public Polo getProduct(){ return polo; } }
客户端的使用,首先创建具体的builder,然后使用Director PoloBuilder polobuild=new PoloBuilder(); Director d=new Director(polobuild); d.组装过程(); Product p=polobuild.getProduct();