//可以进InputStream 类 区分为目的和方法两类 //一般直接子类,都是目的不同的(A类), // 如FileInputStream, #从文件中获得字节。// ByteArrayInputStream #包含一个内存缓冲区,字节从中取出。// ObjectInputStream #用来恢复被序列化的对象。// PipedInputStream #管道输入流,读取管道内容。多和PipedOutputStream一起用于多线程通信。// SequenceInputStream #是多种输入流的逻辑串联,从第一个输入流读取,直到最后一个输入流。// StringBufferInputStream #读取的字节由字符串提供。 // 这里有一个特殊的子类, FilterInputStream 不作为直接子类使用,而作为父类给其他的装饰器子类[或者自定义的子类]继承;//第二类为 增强的方法类型(增强功能)(B类); 典型的以FilterInputStream 为父类的代表的系列子类,都是装饰器模式//(选择继承FilterInputStream 可以让装饰类更加专注于解决增强功能的问题)//如BufferedInputStream;// DataInputStream //装饰器的目的,在于减少源类的数量,将A*B的数量改为A+B,这是比继承的优势;//同时使Java类更加有层次性; //FilterInputStream 典型的装饰模式类的父类,继承FilterInputStream 即可实现自己的装饰器
//即可实现一个装饰类(eg:BufferedInputStream);
时间: 2024-11-02 20:12:44