装饰模式
装饰模式的做用是 使被装饰者的功能更强大,并且装饰后的使用方式不变java
- Io类库中有很多不一样功能的组合状况,这些不一样的功能组合都是使用装饰者模式实现的
- 在须要各类功能的组合时,若是使用继承来实现,会致使大量的重复类
- java io库就是由一些基本的原始流处理器和围绕他们的装饰流处理器组成的
- InputStream 是以抽象组件的形式出现,而FileInputStream就是具体组件,他实现了抽象接口的全部方法,而且持有InputStream对象的引用,FileInputStream就是个装饰类,而BufferedInputStream就是这个装饰类的具体实现者,他给InputStream加入了新的功能,使得InputStream读取的数据保存在内存中,从而提高读取性能
- 在httpServlet中HttpRequestWrapper实现对Request对象装饰,全局进行get请求字符转码会用到
- 和适配器模式不一样在于
- 适配器模式处理两个接口不一致,改变现有使其匹配
- 装饰模式是不改变现有接口,加入新的功能