Java FilterInputStream是一个InputStream,具有一个InputStream

Java FilterInputStream是一个InputStream,具有一个InputStream,java,libraries,java-io,filter-input,Java,Libraries,Java Io,Filter Input,我正在阅读Java I/O库的源代码,注意到FilterStream扩展了支持继承的抽象类InputStream,并且有一个InputStream作为支持组合的实例变量。为什么我们需要一个IS-a和一个has-a关系同时与InputStream?FilterInputStream“是一个”输入流,用于添加或修改需要传入的现有输入流的行为。例如,它的子类BufferedInputStream添加了一个缓冲功能。由于FilterInputStream需要保留传入的流,因此还存在“has a”关系 F

我正在阅读Java I/O库的源代码,注意到
FilterStream
扩展了支持继承的抽象类
InputStream
,并且有一个
InputStream
作为支持组合的实例变量。为什么我们需要一个IS-a和一个has-a关系同时与
InputStream

FilterInputStream
“是一个”输入流,用于添加或修改需要传入的现有输入流的行为。例如,它的子类
BufferedInputStream
添加了一个缓冲功能。由于
FilterInputStream
需要保留传入的流,因此还存在“has a”关系


FilterInputStream
是装饰器模式的一个示例:

FilterInputStream
是一个“输入流”,用于添加或修改需要传入的现有输入流的行为。例如,它的子类
BufferedInputStream
添加了一个缓冲功能。由于
FilterInputStream
需要保留传入的流,因此还存在“has a”关系


FilterInputStream
是decorator模式的一个示例:

它是的一个实现。您将在
java.io
包中看到该模式。它是。您将在
java.io
包中看到整个模式。