《重构》读书笔记12(第十二章完结)

第12章 处理继承关系

12.1函数上移&12.4函数下移

互为逆重构。
子类中有重复代码就可以考虑上移到父类,而父类中的函数如果只与个别子类有关就可以下移。

12.2字段上移&12.5字段下移

互为逆操作。
子类有类似字段可以考虑上移到父类,父类的字段只在被个别子类用到可以考虑下移。

12.3构造函数本体上移

其实和函数上移差不多,只是构造函数比较特殊专门拿出来说。

12.6以子类取代类型码&12.7移除子类

互为逆重构。
在用类型码来区分时不妨引入子类,两种引入方式:一种是直接把包含类型码的类变为超类,另一种是把类型码本身处理成继承关系。
在子类的工作看起来并没什么用时可以考虑移除,把相关字段搬回父类。

12.8提炼超类

两个类做了相似的事情就可以考虑提炼出超类。

12.9折叠继承体系子类

和超类区别不大的时候可以考虑干掉子类了。

12.10以委托取代子类&12.11以委托取代超类

引入委托(接口),前者是把原来子类作为一个委托的实例引入,后者是原来超类作为一个委托的实例引入。动机是继承的耦合性太强,可以用组合的方式取代继承。

-FIN-

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值