Java建造者(Builder)模式

1、同样先编写初始接口,因为饭店套餐中包含食物以及饮料,而且可以打包,而食物以及饮料除了打包方式不同其他的基本相同,所以写两个初始接口,一个是早餐接口,一个是打包方式接口(因为打包方式不止一种,所以需要分开,也可以完全独立,但是我懒得弄了)

    Java建造者(Builder)模式Java建造者(Builder)模式

2、这下我们就可以去扩展这两个接口了

    a、首先就是扩展早餐,里面包括了食物和饮料,这里可以用抽象类进行扩展,因为食物也有很多种,而且我在这直接定义了打包方式,袋子打包,也可以不定义

        Java建造者(Builder)模式Java建造者(Builder)模式

    b、其次就是打包方式扩展

Java建造者(Builder)模式Java建造者(Builder)模式Java建造者(Builder)模式

3、扩展食物以及饮料抽象类

    a、食物

        Java建造者(Builder)模式Java建造者(Builder)模式

    b、饮料

        Java建造者(Builder)模式Java建造者(Builder)模式

4、新增套餐组合工厂

    Java建造者(Builder)模式

5、建立套餐选择工厂

    Java建造者(Builder)模式

6、我们看看结果是什么样子的

    Java建造者(Builder)模式Java建造者(Builder)模式