请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

装饰器vs继承

继承和装饰器都是对现有类 的功能进行扩展和增强。

  • 继承:通过继承被增强类,重写其方法。 或者扩展自己的方法。
  • 装饰器:通过构造参数引入被增强类,调用被增强方法时添加新的逻辑,或者扩展自己的方法。

虽然两种方式都能增强,但感觉侧重点不一样,

  • 继承关联性更强,在子类可以调用父类所有方法,重在复用。
  • 装饰器只是组合,重在增强。

不知道理解的对不对,或者什么时候偏向用装饰,什么时候偏向用继承?

正在回答 回答被采纳积分+3

2回答

提问者 自驱动 2020-04-24 23:56:51

思路都是引进原对象,调用方法前后扩展,能做一样的事情,

但目的不一样,适配主要做接口,装饰主要扩展,继承主要复用。

所以思路类似,特点不一样。

那我感觉方法调用其他对象的方法都是在装饰,可以这么理解吗?

//img1.sycdn.imooc.com//szimg/5ea30a410958dada05540940.jpg

0 回复 有任何疑惑可以回复我~
  • 双越 #1
    可以这么理解。另外类似的,可以搜一下“面向切面编程”。
    回复 有任何疑惑可以回复我~ 2020-04-25 08:01:39
双越 2020-04-22 08:43:20

需要有公共的父类,派生出多个子类,就用继承。

装饰模式是对单个的类进行装饰,涉及不到子类、父类这些。

0 回复 有任何疑惑可以回复我~
  • 提问者 自驱动 #1
    这个回复不能截图,所以回复给自己了,请老师看下并列的回复,感谢。
    回复 有任何疑惑可以回复我~ 2020-04-24 23:58:50
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号