重构-改善既有代码的设计(十二):大型重构

1、梳理并分解继承体系(Tease Apart Inheritance)

(1)症状:某个继承体系同时承担两项责任

(2)解决:建立两个继承体系,并通过委托关系让其中一个可以调用另一个

(3)混乱的继承体系是一个严重的问题,会导致重复代码

(4)将代码较多的职责留在原地,这样一来需要搬移的代码数量就会比较少

(5)如果继承体系中的某一特定层级上的所有类,其子类名称都以相同的形容词开始,那么这个体系很可能承担着两项不同的责任

  • 首先识别出继承体系所承担的不同责任,然后建立一个二维表格,并以坐标轴标示出不同的任务
  • 判断哪一项责任更重要些,并准备将它留在当前的继承体系中,准备将另一项责任移到另一个继承体系中
  • 使用Extract Class从当前的超类提炼出一个新类,用以表示重要性稍低的责任,并在原超类中添加一个实例变量,用以保存新类的实例
  • 对应于原继承体系中的每个子类,创建上述新类的一个子类,在原继承体系的子类中,将前一步骤所添加的实例变量初始化为新建子类的实例
  • 针对原继承体系中的每个子类,使用Move Method将其中的行为搬移到与之对应的新建子类中
  • 当原继承体系中的某个子类不再有任何代码时,就将它去除
  • 重复以上步骤,直到原继承体系中的所有子类都被处理过为止,观察新继承体系,看看是否有可能对它实施其他重构手法,例如Pull Up Method或Pull Up Field

 

2、将过程化设计转化为对象设计(Convert Pro

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值