我很少听到有人使用 Inversion of Control (Ioc) .Net 的原则。我有一些使用 Java 的 friend ,他们在 Spring 和 PicoContainer 中使用了更多的 Ioc。
我理解从您的代码中删除依赖项的原则...但我怀疑它是否好得多。
为什么 .Net 程序员不使用(或较少使用)那些类型的框架?如果这样做,您真的会发现长期的积极影响吗?
最佳答案
很多人在 .NET 中使用 IOC,并且有多种框架可用于协助使用 IoC。你可能在 WinForms 方面很少看到它,因为当你在 Visual Studio 中设计表单时,很难让容器将所有东西连接在一起,但我可以说对于服务器端 .NET 应用程序,我至少在那里工作, IoC 的使用非常成功。
为什么在 .NET 中使用它?出于同样的原因,您在其他任何地方都使用它。我最喜欢的两件事是:
- 针对 IoC 的设计倾向于强制执行良好的编码实践 - 设计接口(interface)、低耦合、高内聚。这也会导致非常容易进行单元测试的类。
- 系统配置通常无需重新编译即可更改。
其他一些讨论可用于 .NET 的不同 IoC/DI 框架的帖子:
关于c# - .net 的控制反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250451/