我们有一个Transaction
负载很重的类;如此加载,以至于我最初最终将近 20 个参数传递给ctor
. 提取了几个值对象后,还剩下12个参数,我觉得还是太多了。
我将如何避免这种情况?我认为将参数传递给构造函数是合理的,因为它们都是必需的,我想明确说明。我也喜欢如果我添加一个属性,我可以将它添加到ctor
并让我的编译器找到它破坏的地方,而不必依赖测试本身。我不认为对象初始化器或构建器对这个问题有任何好处。在接下来的几天里,哪些论点属于同一类,并且可以组合起来,可能会变得更加明显。
public class MyEntity()
{
public MyEntity(ValueType prop2, ValueType prop3, ...)
{
Id = Guid.NewGuid();
Prop2 = prop2;
Prop3 = prop3;
...
}
public Guid Id { get; private set; }
public ValueType Prop2 { get; private set; }
public ValueType Prop3 { get; private set; }
public ...
}