装饰者模式(2)-星巴克咖啡
2021-01-23 本文已影响0人
Shaw_Young
方案2-解决星巴克咖啡订单
前面分析到方案1因为咖啡单品+调料
组合会造成类的倍增,因此可以做改进,将调料内置到Drink类,这样就不会造成类数量过多
。从而提高项目的维护性
说明:
milk、soy、chocolate可以设置为Boolean,表示是否要添加相应的调料。
方案2-解决星巴克咖啡订单问题分析
- 可以控制类的数量,不至于造成很多的类
- 在增加或者删除调料种类时,代码的维护量还是很大
- 考虑到用户可以添加多份调料时,可以将hasMilk返回一个对应int
- 考虑使用装饰者模式