装饰设计模式:
当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象。
并基于被装饰的对象的功能,提供更强的功能。
- 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();
- }
- }
|