装饰和继承的区别

/*

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   

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

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

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

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

*/

猜你喜欢

转载自www.cnblogs.com/zxl1010/p/11492622.html