【发布时间】:2011-12-26 08:53:25
【问题描述】:
我有一个需要 30 个参数的方法。我将参数放入一个类中,这样我就可以将一个参数(类)传递给方法。在重构的情况下,传入一个封装所有参数的对象是否完全可以,即使它包含的只是它。
【问题讨论】:
-
下面的答案很好。我总是为此开设一个班级。您是否使用自动属性? msdn.microsoft.com/en-us/library/bb384054.aspx
-
另外称为 POD(plain-old-data)类型。
-
虽然给出的许多答案都很棒,而且将这些参数重构为更易于处理的东西确实是个好主意,但我想说的是,这种方法需要 30 个不同的数据做它的事情是它做太多的迹象。但是话又说回来,我们还没有看到有问题的方法,甚至不知道它的用途。
-
那么那个接受所有参数的方法,你把它移到新类了吗?还是旧方法只是将新类作为其单个参数?如果有意义的话,我会考虑将该方法放入新类中。只有数据没有方法的类被称为贫血类,感觉少了一点OO。不过,这不是一个硬性规定,只是需要看看。
-
@Michael:我同意你的看法。另一点 - 我相信你不应该创建方法专用对象,除非它的内部在方法之外有某种关系。
标签: c# oop refactoring