重构手法50:Introduce Parameter Object (引入参数对象)

重构手法50:Introduce Parameter Object (引入参数对象)

某些参数总是很自然地同时出现。以一个对象取代这些参数。

动机:你常常会看到特定的一组参数总是被一起传递。可能有好几个函数都使用这一组参数,这些函数可能隶属同一个类,也可能隶属不同的类。这样一组参数就是所谓的Data Clumps(数据泥团),我们可以运用一个对象包装所有这些数据,再以该对象取代它们。哪怕只是为了把这些数据组织在一起,这样做也是值得的。本项重构的价值在于缩短参数列,过长的参数列总是难以理解的。此外,新对象所定义的访问函数还可以使代码更具一致性,这又降低了理解和修改代码的难度。

本项重构还可以带给你更多好处。当你把这些参数组织到一起后,往往很快可以发现一些可被移至新建类的行为。通常,原本使用那些参数的函数对这一组参数会有一些共通的处理,如果将这些共通行为移到新对象中,你可以减少很多重复代码。

做法:1、新建一个类,用以表现你想替换的一组参数。将这个类设为不可变的。

2、编译。

3、针对使用该组参数的所有函数,实施Add Parameter (添加参数),传入上述新建类的实例对象,并将此参数值设为null。

4、对于Data Clumps(数据泥团)中的每一项,从函数签名中移除,并修改调用端和函数本体,令它们都改而通过新的参数对象取得该值。

5、每去除一个参数,编译并测试。

6、将原先的参数全部去除后,观察有无适当函数可以运用 Move Mothod(搬移函数)到参数对象中。

相关推荐

钢化玻璃属于什么材料?钢化玻璃有什么优点?
国内365bet登录网址

钢化玻璃属于什么材料?钢化玻璃有什么优点?

📅 08-09 👁️ 9482
笑为什么会传染?(附忍笑挑战)
123656的网站怎么打开

笑为什么会传染?(附忍笑挑战)

📅 08-23 👁️ 9930
怎么开摩托车的坐垫
国内365bet登录网址

怎么开摩托车的坐垫

📅 08-17 👁️ 5471