微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 与我实现它的方式相比,IoC Container如何实现依赖注入

要做依赖注入,我可以创建一个不同类型的数据库连接的通用字典,然后通过反射动态地实例化一个类型,然后再将它传递给需要它的对象的构造函数.

使用IOC容器时会带来什么样的差异和好处,因为它不会使我的东西比第一个解决方案更独立. IOC容器如何在内部进行?它与第一个解决方案不同吗?

如何在没有容器的情况下实施DI?你什么时候切换到IoC容器?

我的意思是除了我想到的那个之外还有其他方法来实现DI,以便我可以使用最好的方法吗?

解决方法

我想一个容器为你做了很多锅炉板代码.例如,它完全按照您的说法执行,根据反映的行为实例化一个类.许多容器还允许您根据配置文件显式配置系统.

IOC或DI仅是概念. IOC / DI概念为您提供了您所青睐的“不依赖”.实际实施可能有所不同.您可以在不使用第三方容器的情况下执行此操作 – 或者编写自己的容器.或者,您可以利用经过充分测试的第三方容器提供的功能.

如果您只想注入不同类型的数据库连接,那么您对IOC / DI的需求非常小.一般来说,IOC / DI(注意,不是容器,这只是IOC / DI的实现)为您提供完全可配置的软件,有助于单元测试(通过注入存根),自我配置等.

通常,IOC / DI在以下情况下是必需的:

>你的软件是如此庞大和复杂,没有任何一个人可以把它全部放在脑海中,或者>有许多不同的配置,您不希望自定义构建,或>在各个部分之间是如此相互依赖,你发现很难单独测试每一件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐