我是靠谱客的博主 义气诺言,最近开发中收集的这篇文章主要介绍简化函数调用之三 :Remove Parameter(移除参数),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

函数本体(method body)不再需要某个参数。

将该参数去除。

动机(Motivation)

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

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

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

作法(Mechanics)

Remove Parameter 的作法和Rename Method 、Add Parameter 非常相似。

·检查函数签名式(signature)是否被superclass 或如subclass 实现过。如果是,则需要针对每份实现品分别进行下列步骤。

·声明一个新函数,名称与原函数同,只是去除不必要的参数。将旧函数的代码拷贝到新函数中。
Ø如果需要去除的参数不止一个,将它们一次性去除比较容易。

·编译。

·修改旧函数,令它调用新函数。
Ø如果只有少数几个地方引用旧函数,你大可放心地跳过这一步骤。

·编译,测试。

·找出旧函数的所有被引用点,将它们全部修改为对新函数的引用。每次修改后,编译并测试。

·删除旧函数。
Ø如果旧函数是class public 接口的一部分,你可能无法安全地删除它。 这种情况下,将它保留在原处,并将它标记为"deprecated"(不再被赞同)。

·编译,测试。

由于我可以轻松地添加、去除参数,所以我经常一次性地添加或去除必要的参数。

最后

以上就是义气诺言为你收集整理的简化函数调用之三 :Remove Parameter(移除参数)的全部内容,希望文章能够帮你解决简化函数调用之三 :Remove Parameter(移除参数)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部