定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
建造者模式将产品建造的细节分成多个方法中,使得模块化更强。同时我们在添加新的产品时,只需要添加新的建造者就能完成,用户使用不同的建造者就可以完成不同对象的创建。
建造者模式建造的产品具有比较强的相关性。
四个角色:抽象建造者,具体建造者,指挥建造者,产品。
各个部分的作用:
抽象建造者定义了抽象建造函数
具体建造者完成各个部分的建造函数
指挥者控制整个产品建造的流程
产品
/** 抽象建造者:提供建造方法 */
public abstract class Builder
{
public abstract void buildA();
public abstract void buildB();
public abstract void buildC();
public abstract Product getProduct();
}
/** 具体建造者:实现建造方法返回产品 */
public class ConcreteBuilder extends Builder
{
private Product product = new Product();
@Override
public void buildA()
{
System.out.println("A 部件建造完成");
// 组装
}
@Override
public void buildB()
{
System.out.println("B 部件建造完成");
// 组装
}
@Override
public void buildC()
{
System.out.println("C 部件建造完成");
// 组装
}
@Override
public Product getProduct()
{
return product;
}
}
-------------------------------------------------------------------------------------
/** 指挥者:顺序控制建造流程 */
public class Director
{
public void construct(Builder builder){
builder.buildA();
builder.buildB();
builder.buildC();
}
}
-------------------------------------------------------------------------------------
/** 具体产品 */
public class Product{}
/** 测试函数 */
public class Main
{
public static void main(String[] args)
{
Director director = new Director();
Builder builder = new ConcreteBuilder();
director.construct(builder);
Product product = builder.getProduct();
}
}
网友评论