1.装饰器
在不改变原来代码的基础上,直接通过调用来达到新的功能,就是装饰设计模式
例 模拟放大器:

装饰器的组成部分:
1、抽象组件:需要装饰的抽象对象(接口或抽象父类)
2、具体组件:需要装饰的对象
3、抽象装饰类:包含了对抽象组件的应用以及装饰着共用的方法
4、具体装饰类:被装饰的对象
例 模拟咖啡:
1.抽象组件

2.具体组件

3.抽象装饰类

4.两个具体装饰类

5.主方法

2.IO流中的装饰器
InputStream:抽象组件(接口)
FileInputStream和ByteArrayInputStream:这些InputStream实现类是可以被装饰者包起来的具体组件
FileterInpurStream:抽象装饰者
BufferedInputStream、DataInputStream和ObjectInputStream:具体装饰类
原文:https://www.cnblogs.com/chengkuan/p/13275078.html