【问题标题】:Are IoC containers about configuration files?IoC 容器是关于配置文件的吗?
【发布时间】:2010-01-10 18:34:42
【问题描述】:
最近我在 IoC 容器 (Castle-Windsor-Microkernel) 的帮助下开发了一个没有 UI 的性能测试器控制台应用程序。这个库使我能够让用户选择运行哪些测试,只需更改配置文件即可。
我是否意识到 IoC 容器是关于什么的?我不知道。甚至 Joel 在 SO 上也说过 IoC 很难理解。
从我的例子中,你得出什么结论?我是否将 IoC 容器用于它们的设计目的?还是我只是在使用它的次要功能之一?
【问题讨论】:
标签:
inversion-of-control
castle-windsor
ioc-container
configuration-files
【解决方案1】:
IoC 容器主要设计用于支持 DI(依赖注入)。您似乎只是在使用次要功能,尽管从您的描述中很难确定。您的使用是有效的,但不是主要的。
IoC 容器不是关于配置文件的 - 实际上有一些示例根本不使用配置文件(例如 LinFu)。
建议您阅读依赖注入以了解它的真正含义。
【解决方案2】:
我是否将 IoC 容器用于它们的设计目的?
这是它们的设计目的之一 - 所以是的,在这种情况下你正确地使用了它们。
【解决方案3】:
我强烈建议您阅读 Martin Fowler 的 this article。有点长,但这是最好的参考资料之一。
IOC 容器不是配置框架。一种实现方式是使用配置文件。有些容器甚至没有配置文件来定义对象并注入它们。
IOC 也称为依赖注入,这是一个更好的名字。你所做的实际上是它的应用之一。理解透彻,才能做得更多。