gpt4 book ai didi

c# - 默认构造函数是否应该将 NULL 传递给另一个构造函数以创建依赖项?

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:40 25 4
gpt4 key购买 nike

我有一堆具有一组依赖关系的类。这个项目的依赖注入(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/

25 4 0
文章推荐: javascript - 滚动时如何使
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com