十六、装饰者模式
1、装饰者模式
装饰者模式比继承更能降低代码的耦合度,有利于项目的扩展;
装饰者模式中要求:
1) 装饰者和被装饰则应该实现同一个类;
2) 装饰者含有被装饰者的引用
3) 一个类含有另一个类明显的关联关系
4) 装饰者和被装饰者里面的方法一定要一样,为什么要这样做?是为了保障这两个类具有相同的方法
23种设计模式引用:http://www.cnblogs.com/lyb0103/p/7344031.html
|装饰者模式示例|
public class ZhuangShiZheMoShi {
public static void main(String[] args) {
FileReader fReader=new FileReader();//创建被装饰者
BufferedReader brReader=new BufferedReader(fReader);//创建装饰者
brReader.close();//通过执行装饰者中的方法间接去执行被装饰者中的方法。
}
}
abstract class Reader {
public abstract void close();
}
public class FileReader extends Reader {//FileReader 是被装饰者
@Override
public void close() {
System.out.println("FileReader类中的重写的close方法执行");
}
}
public class BufferedReader extends Reader {//BufferedReader是装饰者
FileReader fileReader;//一个类含有另一个类明显的关联关系
public BufferedReader(FileReader fileReader){//装饰者模式中要求,装饰者含有被装饰者的引用
this.fileReader=fileReader;
}
@Override
public void close() {
System.out.println("扩展代码1");//什么是扩展就是在源代码执行的基础之上,加一些代码,这就是扩展
fileReader.close();
System.out.println("扩展代码2");
}
}

浙公网安备 33010602011771号