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

分类: beat365官网在线 时间: 2025-09-11 20:08:30 作者: admin 阅读: 6296

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

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

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

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

2、编译。

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

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

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

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

相关文章

bt365账户为什么封

限速软件软件哪个好用 十款常用限速软件软件排行

165365比分网

【世界杯名单滚动】日本23人名单:香川、本田领衔

beat365官网在线

塞尔达传说荒野之息山之主获取地点