《重构-改善既有代码的设计》重构手法(简化条件逻辑)

文章内容和思路来自《重构-改善既有代码的设计》

1> 分解条件表达式:对于条件逻辑,将每个分支条件分解成新函数还可以带来更多好处:可以突出条件逻辑,更清晰地表达每个分支的作用,并且突出每个分支的原因

      

2> 合并条件表达式:检查条件各不相同,最终行为却一致

     

3> 以卫语句取代嵌套条件表达式:给某一条分支以特别的重;如果使用if-then-else结构,你对if分支和else分支的重视是等同的;这样的代码结构传递给阅读者的消息就是:各个分支有同样的重要性;卫语句就不同了,它告诉阅读者:这种情况不是 本函数的核心逻辑所关心的,如果它真的发生了,请做一些必要的整理工作然后退出

      

4> 以多态取代条件表达式:多态是面向对象编程的关键特性之一;跟其他一切有用的特性一样,它也很容易被滥用。我曾经遇到过有人争论说所有条件逻辑都应该用多态取代;我不赞同这种观点;我的大部分条件逻辑只用到了基本的条件语句(if-else/switch-case),并不需要劳师动众地引入多态;但如果发现如前所述的复杂条件逻辑,多态是改善这种情况的有力工具

      

5> 引入特例:一种常见的重复代码是这种情况:一个数据结构的使用者都在检查某个特殊的值,并且当这个特殊值出现时所做的处理也都相同;如果我发现代码库中的多处以同样的方式应对同一个特殊值,我就会想要把这个处理逻辑收拢到一处;处理这种情况的一个好办法就是使用“特例”模式:创建一个特例元素,用以表达对这种特例的共用行为的处理;这样我就可以用一个函数调用取代大部分特例检查逻辑

      

6> 引入断言:常常会有这样一段代码:只有当某个条件为真时,该段代码才能正常运行;例如,平方根计算只对正值有效;这样的假设通常并没有在代码中明确的表现出来,你必须阅读整个算法才能看出;有时程序员会以注释的方式写这种假设,而我要介绍的是一种更好的技术(使用断言明确标明这些假设)

      

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperYang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值