上一篇说了模版设计模式,接着讲讲装饰设计模式
装饰设计模式:基于已经存在的功能,提供增强的功能
装饰设计模式的由来:
Reader
---TextReader
---MediaReader
为了提高子类的读的效率
Reader
---TextReader
---BufferedTextReader
---MediaReader
---BufferedMediaReader
---OtherReader
---BufferedOtherReader
既然都是提高读的效率,所以就把这个功能提取出来,封装到一个类
中,谁需要被提高效率就把谁作为参数传递给该类的构造方法2016/8/19
class BufferedReader
{
private Reader reader;
public BufferedReader(Reader reader)
{
this.reader = reader;
}
}
使用装饰设计模式后,继承体系如下:
Reader
---TextReader
---MediaReader
---OtherReader
---BufferedReader
装饰设计模式的好处:
1:装饰设计模式使原有继承体系变简单了2:因为是在原有功能提供增强功能,所以这个类还属于原体系