阅读 33

装饰设计模式

装饰模式

装饰模式的作用是 使被装饰者的功能更强大,而且装饰后的使用方式不变



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