文章目录
- 👑星巴克咖啡订单项目(咖啡馆)
- 👒装饰者模式定义
- 👞 装饰者模式解决星巴克咖啡订单
- 💼下面我们跟着代码debug下去看一下
- 🍶装饰者模式在JDK 应用的源码分析
- 🍼InputStream 是抽象类, 类似我们前面讲的 Drink
- 🍺FileInputStream 是 InputStream 子类,类似我们前面的 DeCaf, LongBlack
- 🍻 FilterInputStream 是 InputStream 子类:类似我们前面 的 Decorator 修饰者
- 🍸DataInputStream 是 FilterInputStream 子类,具体的修饰者,类似前面的 Milk, Soy 等
- 🍹FilterInputStream 类 有 protected volatile InputStream in; 即含被装饰者,类似前面的obj
- 🍷 分析得出在 jdk 的 io 体系中,就是使用装饰者模式
👑星巴克咖啡订单项目(咖啡馆)
👒装饰者模式定义
👞 装饰者模式解决星巴克咖啡订单
🌂装饰者模式下的订单:2 份巧克力+一份牛奶的 LongBlack
下面有四个类型的coffee
💼下面我们跟着代码debug下去看一下
👜这里我们new 了一个澳式黑咖啡
👝下面我们把coffee包装到牛奶中去了
👛我们进入到cost方法中去
👓现在我们往下走
又把牛奶包装到了巧克力当中去,这个时候就开始套娃了,大家发现没有