建造者模式:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
java例子:
//Car产品类
public class Car {
List<String> parts = new ArrayList<String>();
public void add(String part){
parts.add(part);
}
public void show(){
System.out.println("-----建造汽车-----");
for(String st:parts){
System.out.println(st);
}
}
}
//抽象建造者类
public abstract class Builder {
//建造发动机
public abstract void builderEngine();
//建造底盘
public abstract void builderChassis();
//建造车身
public abstract void builderCarBody();
//建造结果
public abstract Car getResult();
}
//具体建造者类
public class CarBuilder extends Builder{
private Car car = new Car();
@Override
public void builderEngine() {
car.add("发动机:2.0T");
}
@Override
public void builderChassis() {
car.add("底盘:离地高度10cm");
}
@Override
public void builderCarBody() {
car.add("车身:白色车身");
}
@Override
public Car getResult() {
return car;
}
}
//指挥者类
public class Director {
public void Construct(Builder builder){
builder.builderChassis();
builder.builderEngine();
builder.builderCarBody();
}
}
//测试
public class BuilderTest {
public static void main(String[] args){
Director director = new Director();
Builder builder = new CarBuilder();
director.Construct(builder);
Car car = builder.getResult();
car.show();
}
}
//结果
-----建造汽车-----
底盘:离地高度10cm
发动机:2.0T
车身:白色车身