0

我有 34 种不同的方法,它们采用 ViewModel 类的 1 个参数,但它们中的每一个只使用类上的两个或三个属性。我想我宁愿将这些属性传递给这些方法,而不是整个对象。这是一种轻松重构的方法吗?我试图只选择我的函数中的所有文本并执行 Refactor > Extract Method 希望它足够聪明,可以看到只使用了对象的 2 个属性并将参数列表设为这 2 个属性,但它只是想再次获取整个对象。

也许我需要解释我在做什么......

我正在尝试编写一个将为 wiki 页面生成文本的应用程序。根据输入到 UI 中的值,它会生成模板的文本和使用该模板的文本,或者如果不需要模板,它只会为页面生成文本。它有 17 个不同的部分,因此有 17 个函数在组合时会创建模板页面的文本,如果不需要模板,则有 17 个函数可以组合成实际页面。我这样做是为了一次测试较小的部分,而不是测试一个大型函数的整个输出。

所以目前所有 34 种方法都采用 1 个参数,即从 UI 构建的整个对象。对我来说这已经没有意义了。生成整个页面的 1 部分的函数永远不需要知道在不同部分中使用的数据,如果有人确实尝试在那里使用它,那么我知道出了点问题。

4

2 回答 2

7

有没有理由不通过对象?对象通过引用传递,效率很高,另外,如果您的实现需要更多属性,修改函数比维护函数声明并跟踪所有调用者更容易。我倾向于不理它。

但是要回答您的具体问题,我不知道在 Visual Studio 中重构它的方法。这也是为什么如果它有效,我会倾向于不理会它的另一部分原因。:)

于 2012-09-22T19:32:04.543 回答
0

也许 Resharper 可以帮助您,因为它提供了许多不同的重构功能。您可以尝试下载试用版,试用期为 30 天。不幸的是,目前没有开放的 EAP 程序,因为他们正在发布 v7。

于 2012-09-22T19:30:08.967 回答