BufferedReader 属于字符流
我们主要是使用里面的
public String readline() //会读取一行数据 以字符串返回给我
throws IOException函数
现在用bufferedReader来写个装饰者模式的dome
package io.buffer;
import java.io.BufferedReader;
import java.io.FileReader;
public class buffer {
public static void main(String args []) {
FileReader filereader = null;
BufferedReader bufferedReader=null;//这里先声明两个引用
try {
filereader=new FileReader("d:/1.txt");
bufferedReader=new BufferedReader(filereader);这里把filereader作为参数传入Bufferedreader,等于BufferReader装饰了前者
String a=ull
} catch (Exception e) {
// TODO: handle exception
System.out.println(e);
}
finally{
try {
bufferedReader.close();
filereader.close();
} catch (Exception e2) {
// TODO: handle exception
System.out.println(e2);
}
}
}
}
首先创造出一个worker的接口
package WORK;
interface worker {
abstract void dosomejob();
}
再创造出两个子类,一个cleaner一个singer
分别实现worker接口
package WORK;
public class singger implements worker{
@Override
public void dosomejob() {
// TODO Auto-generated method stub
System.out.println("I am a singer!");
System.out.println("singging!!!!!");
}
}
package WORK;
public class cleaner implements worker{
@Override
public void dosomejob() {
// TODO Auto-generated method stub
System.out.println("I am a cleaner!");
System.out.println("cleaning!!!!");
}
}
然后我们创造一个A公司的员工实现worker
这里就是精髓,我们在Awroker的构造方法里面传入类型为worker的参数;
并加上A公司自己对员工的要求;
package WORK;
public class Aworker implements worker{
private worker worker; //这里先引用一个worker对象
public Aworker(worker worker) {
// TODO Auto-generated constructor stub
this.worker=worker;
}
public void dosomejob() {
// TODO Auto-generated method stub
System.out.println("hello!I come from A company!");
worker.dosomejob();
}
}
最后在text里面运行
package WORK;
public class test {
public static void main(String args[]) {
cleaner cleaner1=new cleaner();
Aworker a1=new Aworker(cleaner1);//这里就是把cleaner1作为参数传入
a1.dosomejob();
}
}