/*
自定义读取缓冲区
装饰设计模式:
当需要对对象进行功能增强的时候,可以定义类,将原有对象传入,基于原有功能,扩展功能
*/
package myBufferedReader;
import java.io.*;
class MyBufferedReader
{
public static void main(String[] args) throws IOException
{
//人吃饭举例
Person p=new Person();
SuperPerson sp=new SuperPerson(p);
sp.superEat();
//自定义读取缓冲区
FileReader r=new FileReader("BufferedCopyDemo.java");
MyReadLine mrl=new MyReadLine(r);
System.out.println(mrl.readLine());
}
}
//自定义缓冲区
class MyReadLine
{
private FileReader r;
MyReadLine(FileReader r)
{
this.r=r;
}
//读一行
public String readLine() throws IOException
{
StringBuilder sb=new StringBuilder();
int ch=0;
while((ch=r.read())!=-1)
{
if(ch=='\r')
continue;
if(ch=='\n')
return sb.toString();
sb.append((char)ch);
}
if(sb.length()!=0)
return sb.toString();
return null;
}
//关闭
public void myClose() throws IOException
{
r.close();
}
}
//人类
class Person
{
public void eat()
{
System.out.println("吃饭");
}
}
//高级人类
class SuperPerson
{
Person p;
SuperPerson(Person p)
{
this.p=p;
}
public void superEat()
{
System.out.println("开胃酒");
System.out.println("吃饭");
System.out.println("饭后果");
}
}
装饰设计模式
最新推荐文章于 2014-12-03 23:38:30 发布