上述案例是如何实现装饰器设计模式的:

    • BufferedInputStream类 继承了 FilterInputStream类,其有参构造可以传入InputStream的子类对象。
    • 上述案例中 BufferedInputStream 的有参构造传入一个FileInputStream对象(fis)作为参数,并继承了该对象的方法。
    • fis的read()是通过从文件中读取一个字节,return一个字节的方式传输,文件有多少个字节就会产生多少次IO。
    • 新的 BufferedInputStream对象(bis) 调用 fis.open() 创建与文件的连通,同时重写了read()方法,通过一次IO读取了大量的字节存放在buffer中,以便于后续在内存中进行单字节的操作。