Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 国际奥委会的企业模式_.net_Dependency Injection_Ioc Container - Fatal编程技术网

.net 国际奥委会的企业模式

.net 国际奥委会的企业模式,.net,dependency-injection,ioc-container,.net,Dependency Injection,Ioc Container,我在研究企业模式,我在阅读 我刚读了第五章,但我还是很困惑。。。据我所知,IoC应该从其他类中删除依赖项,对吗?又称松耦合 我还读到,这很好,因为如果重建具体的类,它不会破坏依赖于它的对象 我明白这意味着,如果我重建程序集(.dll),它将不需要我重建引用它的其他项目,对吗 但是书中的示例在项目中引用了它,并且做了很多事情来获得一个类的实例,这让我感到困惑 我认为最终的结果是动态加载程序集并在其中创建具体类的实例,比如MEF 有人能给我解释一下吗?IoC不仅仅用于删除依赖项。程序集和类没有紧密耦

我在研究企业模式,我在阅读

我刚读了第五章,但我还是很困惑。。。据我所知,IoC应该从其他类中删除依赖项,对吗?又称松耦合

我还读到,这很好,因为如果重建具体的类,它不会破坏依赖于它的对象

我明白这意味着,如果我重建程序集(.dll),它将不需要我重建引用它的其他项目,对吗

但是书中的示例在项目中引用了它,并且做了很多事情来获得一个类的实例,这让我感到困惑

我认为最终的结果是动态加载程序集并在其中创建具体类的实例,比如MEF


有人能给我解释一下吗?

IoC不仅仅用于删除依赖项。程序集和类没有紧密耦合。你可以随时更换它们

但其中一个主要方法是在运行时更改依赖项以及使用的类和对象。您可以要求IoC容器为您提供一个业务处理程序类,而无需关心返回给您的是什么类。IoC容器将决定返回实例的类,您可以为其提供此逻辑

IoC(DI)删除了紧密耦合的依赖项,并且还具有一些逻辑,用于根据每种情况创建不同的对象类型、处理程序和业务提供者,您无需在运行时关心它们

它试图解决哪些问题?

  • 解耦系统中的组件和层
  • 减轻组件管理其依赖关系的责任
  • 在不同环境中交换依赖项实现
  • 允许通过模拟依赖项来测试组件
  • 提供在整个应用程序中共享资源的机制
好处

  • 使测试代码更容易。没有它,您正在测试的代码很难隔离,因为它将与系统的其余部分高度耦合
  • 在开发模块化系统时非常有用。无需重新编译即可替换组件
阅读:第一


它将解释许多基本概念,帮助您理解企业级模式

谢谢。。。但我仍然没有看到它的好处。。。也许我遗漏了一些东西。编辑后提供了一个简单的列表,但请记住,要了解IoC在您的应用程序中的真正位置,您应该在企业架构和设计方面有良好的经验。这是一篇关于此主题的好文章: