处理流里面包含的就是装饰者的设计模式,而所谓的装饰者设计模式是什么呢?
个人理解的是装饰者是在被装饰者做的事之上又做了事,不如下面的例子中读取文件的是FileReader,而BufferedReader装饰FileReader就是可以进行一列一列的读取,而不是像原来一样字符或者字节的读取。
具体意义可以参考以下代码:
import java.io.*;
class Test{
public static void main(String args[]){
FileReader fileReader = null;
BufferedReader bufferedReader = null;
try{
//fileReader这里是读取文件,也是被装饰者,也可以换做类似对象,比如像读取键盘数据的对象等。
fileReader = new FileReader("d:/work/src/users.txt");
//以上是把fileReader对象传入bufferedReader引用中
//这里的bufferedReader是一个装饰者的角色,并不是真正去读取文件,而是装饰fileReader去读取文件,同样的也可装饰键盘等读取其他数据。
bufferedReader = new BufferedReader(fileReader);
String line = null;//定义一个空值的line引用(对象)
while(true){
line = bufferedReader.readLine();//这是一个while循环
if(line == null){
break;
}
System.out.println(line);
}
}
catch(Exception e){
System.out.println(e);
}
finally{
try{
bufferedReader.close();
fileReader.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
}