0
点赞
收藏
分享

微信扫一扫

装饰者设计模式(Decorator)、装饰者设计模式在 FilterInputStream 中的应用


1. 概述

1.1 什么是装饰设计模式?

假如现在有一块蛋糕,涂上奶油,就是奶油蛋糕,加上水果就是水果奶油蛋糕,加上生日快乐四个字就是生日蛋糕。

奶油蛋糕,水果奶油蛋糕,生日蛋糕其核心都是蛋糕,经过装饰之后成为目的更明确的蛋糕,更能解决问题。

像这种不断为对象添加装饰的模式就叫 Decorator 模式,Decorator 指的是装饰物。

1.2 装饰者设计模式的角色
  • 核心角色(Component):最初的蛋糕,仅仅定义了蛋糕的API;
  • 具体角色(ConcreteComponent):实现了核心角色的具体蛋糕;
  • 装饰物(Decorator):和Component角色有相同的接口,内部保存了被装饰对象Component;
  • 具体装饰物(ConcreteDecorator):具体的Decorator角色;

装饰者设计模式的类图:

装饰者设计模式(Decorator)、装饰者设计模式在 FilterInputStream 中的应用_装饰设计模式

2. 装饰者设计模式在 FilterInputStream 中的应用

FilterInputStream 担任的是 装饰物(Decorator)的角色; 核心角色 核心角色(Component)是 InputStream ,具体角色(ConcreteComponent)是 FileInputStream 、ByteArrayInputStream ,具体装饰物(ConcreteDecorator)BufferedInputStream、DataInputStream、LinkNumerInputStream 。

装饰者设计模式(Decorator)、装饰者设计模式在 FilterInputStream 中的应用_参考文献_02


装饰者使用的实例:

InputStream inputStream = new BufferedInputStream(new FileInputStream(""));

参考文献

  • 图解设计模式 结成浩
  • 图解设计模式 尚硅谷


举报

相关推荐

0 条评论