设计模式(15) -- 装饰者模式

需求

星巴克咖啡订单项目
设计模式(15) -- 装饰者模式

解决方案1:

设计模式(15) -- 装饰者模式

方案2

设计模式(15) -- 装饰者模式
如果加多份调料,可以吧boolean返回改为int返回份数。

方案2问题分析

设计模式(15) -- 装饰者模式

装饰者模式

定义

设计模式(15) -- 装饰者模式

装饰者模式原理

设计模式(15) -- 装饰者模式
设计模式(15) -- 装饰者模式

装饰者模式解决星巴克咖啡订单

设计模式(15) -- 装饰者模式

装饰者模式下的订单:2份巧克力+1份牛奶的 LongBlack

设计模式(15) -- 装饰者模式

装饰者模式咖啡订单项目应用实例

设计模式(15) -- 装饰者模式

类图:
设计模式(15) -- 装饰者模式
抽象类:
设计模式(15) -- 装饰者模式
装饰类
设计模式(15) -- 装饰者模式
设计模式(15) -- 装饰者模式
设计模式(15) -- 装饰者模式
咖啡类:
设计模式(15) -- 装饰者模式
设计模式(15) -- 装饰者模式
测试:
设计模式(15) -- 装饰者模式
设计模式(15) -- 装饰者模式
完整代码地址:
https://github.com/hufanglei/java-design/tree/decorator

装饰者模式在JDK应用的源码分析

设计模式(15) -- 装饰者模式
设计模式(15) -- 装饰者模式

网上一篇写的好的文章

https://www.cnblogs.com/WindSun/p/10263459.html