将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类用户不知道内容的具体构建细节。使用它是为了构建复杂对象的过程和它的部件解耦。例如汽车,有很多部件:车轮、方向盘、发动机等等,Builder是为了将部件和组装过程分开。Builder莫斯是把复杂对象部件的创建和组装分别用Builder类和Director类来表示,Builder模式的实现代码如下:
//产品
package yw.build;
public interface Product {
}
//产品部件
package yw.build;
public interface Part {
}
//建造各个部件
package yw.build;
public interface Builder {
//创建部件A 例如汽车车轮
void buildPartA();
//创建部件B
void buildPartB();
//创建部件C
void buildPartC();
//返回最后组装成品结果
Product getResult();
}
//建造者的接口实现类
package yw.build;
public class ConcreateBuilder implements Builder{
Part partA,partB,partC;
//建造partA
public void buildPartA() {
}
//建造partB
public void buildPartB() {
}
//建造partC
public void buildPartC() {
}
//将各部分组装成Product
public Product getResult() {
return null;
}
}
//组件部件
package yw.build;
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();
}
}
调用Builder进行工作
package yw.build;
public class TestBuilder {
public static void main(String arg[]){
ConcreateBuilder builder=new ConcreateBuilder();
Director director=new Director(builder);
director.construct();
Product product=builder.getResult();
}
}