设计模式——构建者模式(Builder)

来源:互联网 发布:电脑备忘录提醒软件 编辑:程序博客网 时间:2024/03/29 22:57

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.假设一个复杂对象是由多个部件组成的,Builder 模式是把复杂对象的创建和部件的创建分别开来,分别用Builder 类和Director 类来表示

//构建复杂对像的各个组件

public interface Builder {
    //创建部件A 比如创建汽车车轮
    void buildPartA();
    //创建部件B 比如创建汽车方向盘
    void buildPartB();
    //创建部件C 比如创建汽车发动机
    void buildPartC();
    //返回最后组装成品结果 (返回最后装配好的汽车)
    //成品的组装过程不在这里进行,而是转移到下面的Director 类中进行.
    //从而实现了解耦过程和部件
    Product getResult();
}

//组装复杂对象

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();
    }
}

 

//构造组装对象个组件

public class ConcreteBuilder implements Builder {
    Part partA, partB, partC;
    public void buildPartA() {
        //这里是具体如何构建partA 的代码
    }
    public void buildPartB() {
        //这里是具体如何构建partB 的代码
    };    public void buildPartC() {
        //这里是具体如何构建partB 的代码
    }
    public Product getResult() {
        //返回最后组装成品结果
    }
}

 

//生成要获得的复杂对象

ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director( builder );
director.construct();
Product product = builder.getResult();

原创粉丝点击