建造者模式
为什么需要建造者模式?
创建复杂对象,这些对象内部构建间的建造顺序通常是稳定的,但是对象内部的构建通常面临着复杂的变化。使用建造者模式使得建造代码与表示类型代码相分离,需要改变一个产品的类型,只需要再定义一个具体的建造者即可。
什么是建造者模式?
将一个复杂对象的构建与它的表示相分离,使得同样的创建方式可以生成不同类型的对象。
建造者模式的抽象实现

逻辑说明:建造者类中定义了产品类有哪几个部分,具体的建造者类实现方法去生成同一部分的不同形态,指挥者类确保每个部分可按照顺序装配部分。
产品类
public class App {
public static void main(String[] args) {
Director director = new Director();
Builder builder1 = new ConcreteBuilder1();
director.construct(builder1);
Product product = builder1.getProduct();
product.show();
}
}
建造者类
public abstract class Builder {
public abstract void builderPartA();
public abstract void builderPartB();
public abstract Product getProduct();
}
指挥者类
public class Director {
public void construct(Builder builder){
builder.builderPartA();
builder.builderPartB();
}
}
具体的建造者类
public class ConcreteBuilder1 extends Builder{
private Product product = new Product();
@Override
public void builderPartA() {
product.add("部件A");
}
@Override
public void builderPartB() {
product.add("部件B");
}
@Override
public Product getProduct() {
return product;
}
}
客户端类
public class App {
public static void main(String[] args) {
Director director = new Director();
Builder builder1 = new ConcreteBuilder1();
director.construct(builder1);
Product product = builder1.getProduct();
product.show();
}
}