代码重构梳理-实践篇(上)

小步快跑:系统重构的开发模式

第一步:分解大函数,抽取方法

抽取函数的标志

  • 超级大函数
    当一个函数所涉及到的业务逻辑特别复杂、程序代码特别多时,我们需要考虑重构,抽取方法。已达到代码易于读懂,便于维护和变更。

  • 重复代码
    整合大量重复的代码,将其提取到一个统一的函数中为其他各处所调用。

  • 块操作语句  
    块操作语句如条件语句、循环语句、try语句。其中典型的就是if语句,每一个if语句中间常常是一个相对独立的功能。

      抽取方法之前,你需要做以下工作:调整代码的先后顺序,将一些有更多关联的代码放在一起,如将变量声明与变量真正使用的代码放在一起,或者将有明显前后关系的代码放在一起。当然也不要忘了加注释。
     
      开始”抽取方法“,给抽取出的方法取一个贴切而易懂的名称-这是一个非常重要的好习惯。被抽取的代码一定要是功能内聚的,它一定是只执行一个清晰的功能,而不是多个。抽取代码的范围所表示的功能没有标准的定义,需要反复的琢磨与修改,所以方法的抽取常常是反反复复的。

第二步:拆分大对象

  当一个类中包含了十几或者上百个方法(这些方法有可能是我们第一步重构时所产生的),功能无所不包时,除了不便于阅读,各个方法的耦合性太高,很有可能牵一发动全身。

大对象拆分过程-抽取类与职责驱动设计

  将原来集中在某一个类中的方法抽取到多个类中,但哪个方法移到哪个类中可参考”职责驱动设计”原则。换句话说就是将这个方法或行为交给拥有该职责的业务类。实际工作中,职责有大有小,界限也模糊不清。

单一职责原则(SRP)与对象拆分

合久必分,分久必合-类的归并

  当拆分出来的方法一时找不到可以放置的业务类时,我们可以先将它们放到各自的方法类中,一个方法类就是为某个方法而设计的类,类名就是这个方法的名称。将聚集了大量不相关方法的超级大对象拆分成一个个方法类,从而实现”合久必分”。
  
  随着对业务理解的加深,以及绘制完善领域模型。我们需重新审视这些方法类,将它们逐步合并到各个业务类中,重构进入”分久必合”阶段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值