若干函数做了类似的工作,但在函数本体中却包含了不同的值。建立一个单一函数,以参数表达那些不同的值。
动机:你可能会发现这样的2个函数:它们做着类似的工作,但因少数几个值致使行为略为不同。这种情况下,你可以将这些各自分离的函数统一起来,并通过参数来处理那些变化,用以简化问题。这样的修改可以去除重复代码,并提高灵活性,因为你可以用这个参数处理更多的变化情况。
做法:1、新建一个带有参数的函数,使它可以替换先前所有的重复性函数。
2、编译。
3、将调用旧函数的代码改为调用新函数。
4、编译、测试。
5、对所有旧函数重复上述步骤,每次替换后,修改并测试。
也许你会发现,你无法用这种方法处理整个函数,但可以处理函数中的某一部分代码。这种情况下,你应该首先将这部分代码提炼到一个独立函数中,然后再对那个提炼所得的函数使用Parameterize Method (令函数携带参数)。