? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?装饰设计模式讲解
? 当想要对已有的对象进行功能增强时,可以定义类,将已有的对象传入(构造器),基于自己已有的功能,并提供加强功能,那么自定义的类称为装饰类。
举一个现实的例子。
? ?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()本质上也是从硬盘里一个个的读取字符,在遇到回车后再将前面输出的字符一起输出)。自己慢慢领悟吧,