黑马程序员技术交流社区
标题:
装饰与继承的区别
[打印本页]
作者:
张志阳
时间:
2012-5-6 15:30
标题:
装饰与继承的区别
装饰与继承有什么具体的区别?我感觉都差不多呢
作者:
李震 李震 李震
时间:
2012-5-6 16:15
装修模式比继承灵活,避免了继承的臃肿, 装饰类因为增强已有对象,具备的功能和已有的功能的相同的,只不过提供更强的功能,所有装饰类和被继承的类通常都是属于同一体系中的。
作者:
田林
时间:
2012-5-6 17:45
一个类只能继承一个父类,继承是为了增强父类的功能,子类重写父类中方法。装饰是通过某种方法将被装饰的类的对象传入进该类,通常是在构造方法中传入。而对于一个给定的对象,可能有不同的装饰对象,客户可以根据自己的需求来增加装饰类型,更加灵活。
作者:
谭景宾
时间:
2012-5-6 17:50
和继承的区别:
继承会让体系变得臃肿,
装饰更为灵活。
作者:
黑马张立国
时间:
2012-5-6 18:06
当想要对已有的对象进行功能增强时,可定义类,将已有对象传入,基于已有的功能,并加强功能。(通过构造函数接收对象)将底了类与类之间的关系。
通过继承也可以增强功能,但会非常臃肿。
例如:毕老师的例子
通过继承实现的
MyReader
|--MyTextReader
|--MyBufferTextReader
|--MyMediaReader
|--MyBufferMediaReader
|--MyDataReader
|--MyBufferDataReader
通过装饰实现的
MyReader
|--MyTextReader
|--MyMediaReader
|--MyDataReader
|--MyBufferReader
作者:
周素强
时间:
2012-5-6 18:25
装饰设计模式:
当想要对已有的对象进行功能增强时,可以定义类将已有的对象传入,基于已有的功能进行增强并提供出去,那么自定义的类称为装饰类。装饰类通常会通过构造方法接收被装饰的对象,并基于被装饰的对象的功能提供更强的功能。
装饰与继承的区别:
装饰模式比继承灵活,避免了继承体系的臃肿,而且降低了类于类之间的关系。
装饰类因为增强的功能和已有对象具备的功能是相同的,只不过提供了更强的功能,所以装饰类和被装饰类通常都是属于一个体系。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2