Add Parameter (添加参数)

Summary 某个函数须要从调用端获得更多信息。为此函数添加一个对象,让该对象带进函数所需信息。程序员

                                               


动机:安全

 Add Parameter是一个很经常使用的重构手法,使用这项重构的动机很简单:你必须修改一个函数,而修改后的函数须要一些过去没有的信息,所以你须要给该函数添加一个参数。函数

实际上我比较须要说明的是:不使用本项重构的时机。除了添加参数外,你经常还有其余选择。只要可能,其余选择都比添加参数要好,由于它们不会增长参数列的长度。过长的参数列是很差的味道,由于程序员很难记住那么多参数,并且长参数列每每伴随着坏味道Data Clumps测试

请看看现有的参数,而后问本身:你能从这些参数的到所须要的信息吗?若是回答是否认的,有可能经过某个函数提供所需信息吗?你究竟把这些信息用于何处?这个函数是否应该属于拥有该信息的那个对象全部?看看先有参数,考虑一下,加入新参数是否合适?也许你应该考虑使用Introduce Parameter Objectspa

作法:  Add Parameter的作法和Rename Method很是类似。对象

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

2.声明一个新函数,名称与原函数相同,只是加上新添参数。将旧函数的代码复制到新函数中。编译

à若是要添加的参数不止一个,将它们一次性添加进去比较容易重构

3.编译。引用

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

à若是只有少数几个地方引用旧函数,你能够大胆放心地跳过这一步骤。

à此时,你能够给参数提供任意值。但通常来讲,咱们会给对象参数提供null,给内置型参数提供一个明显非正常值。对于数值型参数,咱们建议使用0之外的值,这样你比较容易未来认出它。

5.编译,测试。

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

7.删除旧函数。

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

8.编译,测试。

相关文章
相关标签/搜索