- 定义
将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
- 优点
1、建造者独立,易扩展。 2、便于控制细节风险。
- 缺点
1、产品必须有共同点,范围有限制。 2、如内部变化复杂,会有很多的建造类。
- 使用场景
1、需要生成的对象具有复杂的内部结构。 2、需要生成的对象内部属性本身相互依赖。
- 注意事项
与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。
类图
/***
* 产品类 电脑
*
*/
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();
}
}
网友评论