作者:黄ll明雪_742 | 来源:互联网 | 2023-07-26 10:34
函数本体不再需要某个函数。将该参数去除。动机:程序员可能检查添加参数,却往往不愿意去掉它们。他们打的如意算盘是:无论如何,多余的参数不会引起任何问题,而且以后还可能用上它。参数代
函数本体不再需要某个函数。将该参数去除。
动机:程序员可能检查添加参数,却往往不愿意去掉它们。他们打的如意算盘是:无论如何,多余的参数不会引起任何问题,而且以后还可能用上它。
参数代表着函数所需的信息,不同的参数值有不同的意义。函数调用者必须为每一个参数操心该传什么东西进去。如果你不去掉多余参数,就是让你的每一位用户多费一份心。是很不划算的,更何况“去除参数”是非常简单的一项重构。
但是,对于多态函数,情况有所不同。这种情况下,可能多态函数的另一份实现会使用这个参数,此时你就不能去除它。你可以添加一个独立函数,在这些情况下使用。不过你应该先检查调用者任何使用这个函数,以决定是否值得这么做。如果某些调用者已经知道他们正在处理的是一个特定的子类,并且已经做了额外工作找出自己需要的参数,或已利用对类体系的了解来避免取到null,那么就值得建立一个新函数,去除那多余的参数。如果调用者不需要了解函数所属的类,你也可以继续保持调用者无知而幸福的状态。
做法:1、检查函数签名是否被超类或子类实现过。如果是,则需要针对每份实现分别进行下列步骤。
2、声明一个新函数,名称与原函数相同,只是加上新参数。将旧函数的代码复制到新函数中。
3、编译。
4、修改旧函数,令它调用新函数。
5、编译、测试。
6、找出就函数的所有引用点。将它们全部修改为对新函数的引用。每次修改后,编译测试。
7、删除旧函数。
8、编译、测试。