圣诞大减价开始了!

引入参数对象

问题

方法包含一组重复的参数。

解决方案

用一个对象替换这些参数。

之前
介绍参数对象-前
介绍参数对象- After

为什么重构

在多个方法中经常遇到相同的参数组。这会导致参数本身和相关操作的代码重复。通过在单个类中合并参数,还可以将处理此数据的方法也移动到该类中,从而将其他方法从此代码中解放出来。

好处

  • 更可读的代码。您看到的不是参数的大杂烩,而是具有易于理解的名称的单个对象。

  • 分散在各处的相同参数组会创建它们自己的代码复制:虽然没有调用相同的代码,但会经常遇到相同的参数和参数组。

缺点

  • 如果您只是将数据移动到一个新类中,而不打算将任何行为或相关操作移动到那里,那么这就开始有一种错误的味道数据类

如何重构

  1. 创建一个表示参数组的新类。使类不可变。

  2. 在要重构的方法中,使用添加参数,这是传递参数对象的地方。在所有方法调用中,将由旧方法参数创建的对象传递给此参数。

  3. 现在开始逐个删除方法中的旧参数,用参数对象的字段替换代码中的旧参数。在每个参数替换后测试程序。

  4. 完成后,查看是否有必要将方法的一部分(有时甚至是整个方法)移动到参数对象类。如果是,请使用移动方法提取方法

Baidu
map