java io 装饰者模式的应用

                                   java.io.InputStream
                                               |
 _______________________|________________________
 |                                                                                             |
ByteArrayInputStream                                                FilterInputStream
StringBufferInputStream                 _____________________|____________________________
FileInputStream                                            |                 |                    |          |

PipedInputStream                      DataInputStream BufferedInputStream  LineNumInpuStream XXX


左边的是:字节、字符串、文件、管道的各种基本功能的实现类;

右边则是装饰者类,可以对左边的各种基本功能类进行装饰,以添加新特性,比如:

对文件读取类 FileInputStream添加了缓冲区,这样可以提高读取大文件的效率。

BufferdInputStream is = new BufferedInputStream(new FileInputStream("xxx.txt"));

另外:

基本功能类和装饰者类要求实现同样的接口(或者是抽象类)

基本功能类的实例作为参数传入装饰者类,将被装饰,在基本功能上添加新特性!

你可能感兴趣的:(Java)