A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 澂澂 中级黑马   /  2015-4-25 13:52  /  261 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

装饰设计模式:
当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类。

装饰类通常会通过构造方法接收被装饰的对象。
并基于被装饰的对象的功能,提供更强的功能。



  • 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();
  •     }
  • }



/*
    java API 中装饰模式例子
*/

点击(此处)折叠或打开

  • import java.io.*;
  • class BufferedReaderDemo
  • {
  •     public static void main(String[ args) throws IOException
  •     {
  •         //创建一个读取流对象和文件相关联。
  •         FileReader fr = new FileReader("buf.txt");
  •         //为了提高效率。加入缓冲技术。将字符读取流对象作为参数传递给缓冲对象的构造函数。
  •         BufferedReader bufr = new BufferedReader(fr);
  •         String line = null;
  •         while((line=bufr.readLine())!=null)
  •         {
  •             System.out.print(line);
  •         }
  •         bufr.close();
  •     }
  • }



评分

参与人数 1黑马币 +20 收起 理由
dgrlucky + 20 很潇洒嘛!

查看全部评分

1 个回复

倒序浏览
总结的不错,楼主加油~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马