装饰设计模式讲解
当想要对已有的对象进行功能增强时,可以定义类,将已有的对象传入(构造器),基于自己已有的功能,并提供加强功能,那么自定义的类称为装饰类。
举一个现实的例子。
Class Person/*以前的人吃饭*/{
public void chifan()
{
System.out.println("吃饭");
}
}
Class SuperPerson/*现在的人吃饭,相比于以前的人功能增强*/
{
private Person p;
SuperPerson(Person p)
{
this.p=p;
}
public void superChifan()
{
System.out.println("开胃菜");
p.chifan();
System.out.println("甜点");
System.out.println("抽一根烟");
}
}
Class PersonDemo/* 定义主类*/
{
public static void main( String[]args)
{
Person p=new Person();
p.chifan();
SuperPerson sp=new SuperPerson(p);
sp.superChifan();/*实现Superperson的方法*/
}
}
。
回归到Java里BufferReader类里的readline()方法就是父类Reader类方法read()的加强(readline()本质上也是从硬盘里一个个的读取字符,在遇到回车后再将前面输出的字符一起输出)。自己慢慢领悟吧,