建造者模式

2020-08-06  本文已影响0人  Stephenwish
建造者模式有点类似工厂模式,创建对象,但是建造模式侧重点是流程
第一步,创建一个普通对象
//省略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);

    }
}
上一篇 下一篇

猜你喜欢

热点阅读