java.io.InputStream
|
_______________________|________________________
| |
ByteArrayInputStream FilterInputStream
StringBufferInputStream _____________________|____________________________
FileInputStream | | | |
|
_______________________|________________________
| |
ByteArrayInputStream FilterInputStream
StringBufferInputStream _____________________|____________________________
FileInputStream | | | |
PipedInputStream DataInputStream BufferedInputStream LineNumInpuStream XXX
左边的是:字节、字符串、文件、管道的各种基本功能的实现类;
右边则是装饰者类,可以对左边的各种基本功能类进行装饰,以添加新特性,比如:
对文件读取类 FileInputStream添加了缓冲区,这样可以提高读取大文件的效率。
BufferdInputStream is = new BufferedInputStream(new FileInputStream("xxx.txt"));
另外:
基本功能类和装饰者类要求实现同样的接口(或者是抽象类)
基本功能类的实例作为参数传入装饰者类,将被装饰,在基本功能上添加新特性!