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