Remove Parameter (移除参数)

Summary 函数体不再需要某个参数。将该参数去除。

                                               

093824_NbNl_134516.png

            动机:

        程序员可能经常添加参数,却往往不愿意去掉它们。他们打的如意算盘是:无论如何,多余的参数不会引起任何问题,而且以后还有可能用上它。

这也是恶魔的诱惑,一定要把它从脑子里赶出去!参数代表着函数所需要的信息,不同的参数值有不同的意义。函数调用者必须为每一个参数操心该传什么东西进去。如果你不去掉多余参数,就是让你的每一位用户多费一份心。是很不划算的,更何况“去除参数”是非常简单的一项重构。

但是,对于多态函数,情况有所不同。这种情况下,可能多态函数的另一份(或多份)实现会使用这个参数,此时你就不能去除它。你可以添加一个独立函数,在这些情况下使用,不过你应该先检查调用者如何使用这个函数,以决定是否值得这么做。如果某些调用者已经知道他们正在处理的是一个特定的子类,并且已经做了额外工作找出自己需要的参数,或已经利用对类体系的了解来避免取到null,那么就值得你建立一个新函数,去除那多余的参数。如果调用者不需要了解该函数所属的类,你也可以继续保持调用者无知而幸福的状态。

做法:

Remove Parameter的做法和Rename MethodAdd Parameter非常相似。

1.检查函数签名是否被超类或子类实现过。如果是,则需要针对每份实现分别进行下列步骤。

2.声明一个新函数,名称与原函数相同,只是去除不必要的参数。将旧函数的代码复制到新函数中。

à如果要去除的参数不止一个,将它们一次性去除比较容易

3.编译。

4.修改旧函数,令它调用新函数。

à如果只有少数几个地方引用旧函数,你可以大胆放心地跳过这一步骤。

5.编译,测试。

6.找出旧函数的所有被引用点,修改它们,令它们改而引用新函数。每次修改后,编译并测试。

7.删除旧函数。

à如果旧函数是该类public接口的一部分,你可能无法安全地删除它。这种情况下,将它保留在原处,并将它标记为deprecated(建议不使用)。

8.编译,测试。


转载于:https://my.oschina.net/u/134516/blog/214960

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值