前言
建造者模式属于设计模式中的创建型的设计模式。建造者模式主要用来创建复杂的对象,而不用关心创建对象的过程和细节。
建造者模式的实现
下面以组装电脑为例,来看看建造者模式的实现:
(1)具体的产品类:包含了一个产品的一些属性
public class Computer {
private String mCpu;
private String mMemory;
private String mHD;
public void setCpu(String mCpu) {
this.mCpu = mCpu;
}
public void setMemory(String mMemory) {
this.mMemory = mMemory;
}
public void setHD(String mHD) {
this.mHD = mHD;
}
}
(2)抽象的建造者类:包含了建造产品的一些抽象方法
public abstract class Builder {
public abstract void buildCpu(String cpu);
public abstract void buildMemory(String memory);
public abstract void buildHD(String hd);
public abstract Computer getComputer();
}
(3)具体的建造者类:继承于抽象的建造者,里面包含了一些建造产品的具体方法
public class ConcreteBuilder extends Builder {
Computer computer=new Computer();
@Override
public void buildCpu(String cpu) {
computer.setCpu(cpu);
}
@Override
public void buildMemory(String memory) {
computer.setMemory(memory);
}
@Override
public void buildHD(String hd) {
computer.setHD(hd);
}
@Override
public Computer getComputer() {
return computer;
}
}
(4)指挥者类:相当于对接需求的一个类,把生产建造产品的需求告诉建造者类
public class Director {
private Builder builder=null;
public Director(Builder builder) {
this.builder = builder;
}
public void construct(String cpu,String memory,String hd){
builder.buildCpu(cpu);
builder.buildMemory(memory);
builder.buildHD(hd);
}
}
测试
public static void main(String[] args) {
Builder builder=new ConcreteBuilder();
Director director=new Director(builder);
director.construct("CPU","Memory","HD");
}