-1
我很困惑DI。我见过很多解释DI的文章都可以使用构造函数实现,并且一些文章提到了使用ninject的DI。所以我无法理解使用ninject。如果ninject不存在,那么代码也会工作。你能解释一下使用ninject的好处吗?DI使用Ninject
我很困惑DI。我见过很多解释DI的文章都可以使用构造函数实现,并且一些文章提到了使用ninject的DI。所以我无法理解使用ninject。如果ninject不存在,那么代码也会工作。你能解释一下使用ninject的好处吗?DI使用Ninject
报价
Darin Dimitrov
什么是使用Ninject提供了我,我不能只是 以下松耦合的基本原理呢?在Composition Root
你笑万物否则应手动处理。这就是说,DI框架并不重要。它应该很快,并提供您的应用程序所需的特定功能。但是,DI框架绝对不应以松散耦合的方式影响您设计代码和应用程序中不同层的方式(对接口和抽象类进行编程以削弱应用程序不同层之间的耦合)。
因此,将DI框架视为仅在您的应用程序的Composition Root中进行干预的框架,并且您可以用一个不同的框架或者手动处理对象生命周期来替代。
例如,您在问题中显示的代码非常糟糕,因为它将图层与特定的DI框架关联。这个属性在那里就像癌症一样。这意味着您的应用程序代码依赖于特定的DI框架。
另外我建议你阅读这个book。
A [该书的第二版](https://www.manning.com/seemann2/)目前正在制作中,第3章即将发布。 – Steven