IoC中的企业模式

时间:2011-04-19 04:32:55

标签: .net dependency-injection ioc-container

我正在学习企业模式,我正在阅读this book

我刚刚阅读了第5章,我仍然感到困惑......据我所知,IoC应该从其他类中删除依赖项,对吧?又名松散耦合。

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

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

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

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

有人能解释一下吗?

2 个答案:

答案 0 :(得分:2)

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

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

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

IoC in WikiPedia

它试图解决哪些问题?

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

<强>优势

  • 让您更轻松地测试代码。没有它,您正在测试的代码难以隔离,因为它将高度耦合到系统的其余部分。
  • 开发模块化系统时很有用。您可以替换组件而无需重新编译。

答案 1 :(得分:1)

首先阅读:Head First Design Patterns

它将解释许多有助于您了解企业级模式的基本概念