建造者模式

建造者模式有点类似工厂模式,创建对象,但是建造模式侧重点是流程
第一步,创建一个普通对象
//省略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);

    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容