装饰和继承的区别

/*

MyReader  // 专门用于读取数据的类。

    |----  MyTxetReader

      |----MyBufferedTextReader

    |----  MyMediaReader

         |----MyBufferedMediaReader

    |---- MyDataReader

      |----MyBufferedDataReader

 

class MyBufferedReader 

{

  MyBufferedReader(MyTxetReader  text)

  MyBufferedReader(MyMediaReader  media)

}        上述这个类扩展性极差。 找到其参数的类型,通过多态的方式,可以提高拓展性。

 

class  MyBufferedReader  extends  MyReader

{

  MyBufferedReader(MyReader  r)

}

MyReader,专门用于读取数据的类

    |----  MyTxetReader

    |----  MyMediaReader

    |----  MyDataReader

    |----  MyBufferedReader   

 装饰设计模式比继承更灵活,避免了继承体系的臃肿。

而且降低了类与类之间的关系。

 

装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了

更强功能。所以装饰类和被装饰类通常是都属于一个体系当中的。

*/

posted @ 2019-09-09 16:43  蚂蚁雅黑1010  阅读(233)  评论(0编辑  收藏  举报