创建型-建造者模式(一般模式)

2020-04-23  本文已影响0人  程序男保姆
将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。

1、建造者独立,易扩展。 2、便于控制细节风险。

1、产品必须有共同点,范围有限制。 2、如内部变化复杂,会有很多的建造类。

1、需要生成的对象具有复杂的内部结构。 2、需要生成的对象内部属性本身相互依赖。

与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。

类图

image.png image.png

/***
 * 产品类 电脑
 *
 */
public class Computer {

    /**显示器*/
    private String monitor;

    /**cpu*/
    private String cpu;


    public String getMonitor() {
        return monitor;
    }

    public void setMonitor(String monitor) {
        this.monitor = monitor;
    }

    public String getCpu() {
        return cpu;
    }

    public void setCpu(String cpu) {
        this.cpu = cpu;
    }

    @Override
    public String toString() {
        return "Cpmputer{" +
                "monitor='" + monitor + '\'' +
                ", cpu='" + cpu + '\'' +
                '}';
    }
}


public abstract class AbstractComputerBuilder {

    public abstract void setMonitor(String monitor) ;

    public abstract void setCpu(String cpu) ;

    public abstract Computer build();

}



public class ComputerBuilderXW extends AbstractComputerBuilder {

    Computer computer = new Computer();

    @Override
    public void setMonitor(String monitor) {
        computer.setMonitor(monitor);
    }

    @Override
    public void setCpu(String cpu) {
        computer.setCpu(cpu);
    }

    @Override
    public Computer build() {
        return computer;
    }
}



public class Director {
   private AbstractComputerBuilder a;

    public void setA(AbstractComputerBuilder a) {
        this.a = a;
    }

    public Computer create(){
        a.setCpu("cpu");
        a.setMonitor("显示器");
        return a.build();

    }

}

上一篇 下一篇

猜你喜欢

热点阅读