我有一堆具有一组依赖关系的类。这个项目的依赖注入(inject)会有点矫枉过正,所以目前我们在很多情况下都有以下模式:
public MyClass() : this(null, null) {}
public MyClass(Dependancy x, Dependancy y)
{
this.x = x ?? new Dependancy();
this.y = y ?? new Dependancy();
}
我不喜欢这段代码,但我不太清楚为什么。一个原因是它摆弄了传入的参数,另一个原因是我可能希望参数为 null,并保持为 null。
是否有充分的理由避免/使用这种模式或任何其他模式,或者它基本上只是个人偏好?
最佳答案
你不喜欢它有两个原因:
- 不需要向其传递 NULL 的参数化构造函数;有第二个无参数构造函数;
- 拥有第三个类(命名为 Factory,命名为 Container,没关系)注入(inject)那些默认依赖项,与好处相比永远不会过大。
关于c# - 默认构造函数是否应该将 NULL 传递给另一个构造函数以创建依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9328016/