【发布时间】:2012-12-03 05:30:45
【问题描述】:
http://www.jetbrains.com/idea/webhelp/extract-parameter-object.html
对于具有大量参数的方法,我一直认为将方法参数提取为对象是一个好主意。
public void Method(A a, B b, C c, D d, E e);
变成
public class Wrapper {A; B; C; D}
public void Method(Wrapper wrapper);
这让我可以:
- 在我的代码中具有更好的可读性
- 在 Wrapper 类中执行这些参数的验证,并在需要时跨层/组件重用它。
- 提供不那么脆弱的方法签名。
您对此是否有任何其他优点/缺点可以帮助说服正在编写具有大量参数的方法的人?如果这有什么不同,我正在编写 C# 4。
【问题讨论】:
-
这对于一组相关的参数可能没问题。如果您有大量参数,则可能是存在独立子集的情况。您不想将独立的子集耦合在一起。