(黑马训练营毕老师)
假如我们有3个读取文件的类,TextReader(用于读取文本文件),MediaReader(用于读取图像文件),DataReader(用于读取数据文件),三者都继承自Reader
然而我们需要通过缓冲区技术提高以上三者的效率
体系一:
|--TextReader
|--BufferedTextReader(继承)
|--MediaReader
|--BufferedMediaReader
|--DataReader
|--BufferedDataReader
体系一的缺点在于没多增一个类,则必须扩展一个缓冲区的子类。
体系二:
创建一个BufferedClass
public class Buffered
{
Buffered ( TextReader t);
Buffered ( MediaReader m);
Buffered (DataReader d);
}
体系二的缺点就是扩展性差,同体系一一样没多增一个类,必须新增一个重载。
而当我们重新审视体系二时候,我们发现传入类型都是继承自Reader,所以可以使用多态来设计构造函数,增加扩展性。
体系三
public class Buffered
{
Buffered(Reader r);
}
只需一句语句就能完成上面全部功能。