.NET空间中的很多人拿起了温莎城堡,并在他们的项目中实施它,在过去的一年中,我一直在努力弄清楚为什么IoC容器似乎被视为一般的“最佳实践” ?我已经阅读了很多关于温莎等等的摘要和简要解释,但是其中的每一个都是抽象的,并且对于我所触及的大多数项目来说似乎都不实用,但最近我一直遇到很多使用Windsor的项目,我不明白为什么。IoC容器适用性/情景演示?
C#/ .NET本质上支持基于接口的编码,抽象对象,委托和事件。我们可以从核心语言实现IoC,并且使用Reflection等实例化实现已知接口的未知实例,而不诉诸IoC容器库。
当应用YAGNI/AYGNI(你是否需要它?)我觉得温莎已被过度使用。我当然可以看到IoC容器的好处,但我认为这些好处是以额外的依赖性和元数据为代价的(IoC容器特有的属性和方法在核心代码中调用,.config文件在任何地方分散,app.config/web.config充满了绑定标签使得.config文件更难以编辑等),所以我试图找出折衷。
这就是说,我正在接受这种可能性,我正在对这些意见/声明做出全部所有关于无知的声明,因为我从未大量参与过使用Windsor或其他IoC容器库的项目。我真正需要的是有人展示一个“平均”或“典型”项目,在这个项目中使用了一个IoC容器库,为什么这应该是一个“最佳实践”,对我来说,它似乎使一个干净的项目变得凌乱与依赖和元数据。
如果有人知道任何博客帖子,文章或书籍,将填补我,这将是非常棒的。 (我不争论争吵的缘故,但因为我真的很想接受教育,是否应该让我自己了解IoC容器)。