1.装饰器
在不改变原来代码的基础上,直接通过调用来达到新的功能,就是装饰设计模式
例 模拟放大器:
装饰器的组成部分:
1、抽象组件:需要装饰的抽象对象(接口或抽象父类)
2、具体组件:需要装饰的对象
3、抽象装饰类:包含了对抽象组件的应用以及装饰着共用的方法
4、具体装饰类:被装饰的对象
例 模拟咖啡:
1.抽象组件
2.具体组件
3.抽象装饰类
4.两个具体装饰类
5.主方法
2.IO流中的装饰器
InputStream:抽象组件(接口)
FileInputStream和ByteArrayInputStream:这些InputStream实现类是可以被装饰者包起来的具体组件
FileterInpurStream:抽象装饰者
BufferedInputStream、DataInputStream和ObjectInputStream:具体装饰类