概念:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
核心:用户只需要指定需要建造的类型,不需要知道建造的过程和细节。
建造者设计模式
java代码:
public class BuilderTest {
public static void main(String[] args) {
Director director = new Director(new ConcreteBuilderA());
director.Construct();
}
}
//建造者接口
public abstract class Builder {
public abstract void BuildPartA();
public abstract void BuildPartB();
public abstract void BuildPartC();
}
//指挥者
public class Director {
Builder builder;
public Director(Builder builder){
this.builder = builder;
}
public void Construct(){
builder.BuildPartA();
builder.BuildPartB();
builder.BuildPartC();
}
}
public class ConcreteBuilderA extends Builder{
@Override
public void BuildPartA() {
System.out.println("构建A对象A部分");
}
@Override
public void BuildPartB() {
System.out.println("构建A对象B部分");
}
@Override
public void BuildPartC() {
System.out.println("构建A对象C部分");
}
}
public class ConcreteBuilderB extends Builder {
@Override
public void BuildPartA() {
System.out.println("构建B对象A部分");
}
@Override
public void BuildPartB() {
System.out.println("构建B对象B部分");
}
@Override
public void BuildPartC() {
System.out.println("构建C对象C部分");
}
}