建造者模式有点类似工厂模式,创建对象,但是建造模式侧重点是流程
第一步,创建一个普通对象
//省略get,set方法
public class Completepart {
private String food;
private String drink;
}
#######第二步,为这个对象创建建造器,方便对外提供,类似工厂
public abstract class Builder {
Completepart completepart = new Completepart();
//返回builder 方便链式编程
public abstract Builder buildfood();
public abstract Builder builddrink();
public Completepart buildPart() {
return completepart;
}
#######第三步,实例化一两个具体的建造器
public class APart extends Builder{
@Override
public Builder buildfood() {
completepart.setFood("Afood 作为part1 的实现");
System.err.println("Afood 作为part1 的实现");
return this;
}
@Override
public Builder builddrink() {
completepart.setDrink("Adrink 作为part1 的实现");
System.err.println("Adrink 作为part1 的实现");
return this;
}
}
public class BPart extends Builder{
@Override
public Builder buildfood() {
completepart.setFood("Bfood 作为part2 的实现");
System.err.println("Bfood 作为part2 的实现");
return this;
}
@Override
public Builder builddrink() {
completepart.setDrink("Bdrink 作为part2 的实现");
System.err.println("Bdrink 作为part2 的实现");
return this;
}
}
创建客户端检验
public class Client {
public static void main(String[] args) {
Builder builder = new APart();
Completepart completepart = builder.builddrink().buildfood().buildPart();
System.err.println(completepart);
}
}
网友评论