美文网首页
建造者模式【生成器模式】(创建型)

建造者模式【生成器模式】(创建型)

作者: 游牧族人 | 来源:发表于2018-09-02 10:36 被阅读8次

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
建造者模式将产品建造的细节分成多个方法中,使得模块化更强。同时我们在添加新的产品时,只需要添加新的建造者就能完成,用户使用不同的建造者就可以完成不同对象的创建。
建造者模式建造的产品具有比较强的相关性。

四个角色:抽象建造者,具体建造者,指挥建造者,产品。
各个部分的作用:
抽象建造者定义了抽象建造函数
具体建造者完成各个部分的建造函数
指挥者控制整个产品建造的流程
产品

/** 抽象建造者:提供建造方法 */
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();
    }
}

相关文章

网友评论

      本文标题:建造者模式【生成器模式】(创建型)

      本文链接:https://www.haomeiwen.com/subject/dxnpwftx.html