当前位置: 代码迷 >> 综合 >> 装饰者设计模式(Decorator)、装饰者设计模式在 FilterInputStream 中的应用
  详细解决方案

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

热度:31   发布时间:2023-12-26 12:41:33.0

1. 概述

1.1 什么是装饰设计模式?

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

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

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

1.2 装饰者设计模式的角色

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

装饰者设计模式的类图:
在这里插入图片描述

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

FilterInputStream 担任的是 装饰物(Decorator)的角色; 核心角色 核心角色(Component)是 InputStream ,具体角色(ConcreteComponent)是 FileInputStream 、ByteArrayInputStream ,具体装饰物(ConcreteDecorator)BufferedInputStream、DataInputStream、LinkNumerInputStream 。
在这里插入图片描述
装饰者使用的实例:

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

参考文献

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