为什么我不应该在构造函数中调用我的依赖项?
我一直认为从构造函数中调用类依赖项是一种不好的做法,但是昨天无法向同事说明原因。 任何人都可以提供不这样做的充分理由吗?
Nikola Malovic的IoC第四定律有几个原因:
请注意, 此规则是上下文的:它适用于使用Constructor Injection的服务。 实体和值对象倾向于不使用DI,因此其构造函数受其他规则的约束。
如果你调用你的依赖项,你实际上是在构造函数中工作。
从客户的角度来看是出乎意料的。 当我做这样的事情时:
var myObj = new SomeClass();
我不指望有任何副作用。
如果您在构造函数中执行某些操作,例如它可能会抛出exception,这肯定不是您所期望的。 这就像命名方法FetchUsers
并在该方法中创建用户并返回它。 不是你所期望的。
上述就是C#学习教程:为什么我不应该在构造函数中调用我的依赖项?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/998637.html