JAVA io流(2) 节点流和处理流 装饰者模式!!!

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的例子来解释

首先创造出一个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();
		
	}
	
	
	
			
			

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值