控制反转 - 大规模实例

时间:2014-02-07 00:32:18

标签: c# inversion-of-control

我理解控制的反转及其背后的概念。这一切都是有道理的,但是我的知识来自只提供简单模型和场景的文章和书籍。

在我的情况下,我没有人在这种架构上有扎实的经验,所以我无法验证我的设计。有没有关于IoC正确完成的系统的好例子?

此外,在我的情况下,我倾向于在单独的程序集中声明接口和模型,这些接口和模型由调用者和实现者(在引导时注入依赖项)导入。然而,这导致了很多项目,我有时很难证明组件只实现了两个或三个类,只是为了解耦。我一直在想,也许你可以通过命名空间实现类似的隔离级别。

1 个答案:

答案 0 :(得分:1)

IoC不以任何方式要求您拥有许多程序集 - 您可以拥有一个或多个您认为必要/需要的版本控制或其他外部原因。

对于所有选项都有很好的论据,包括两个极端(每个程序集的几个类到一个程序集),你需要选择一个。

需要考虑的事项:

  • 可以为您正在处理的代码片段(即1分钟内)构建+单元测试 - 如果不考虑更小心地制作更小的组件和单独的项目
  • 您是否提供外部API - 如果是,请考虑拆分“稳定接口”程序集和“经常更改实现/详细信息”程序集。
  • 您的团队是否需要在程序集之间进行代理的物理分离,以避免对象的紧密耦合,或者仅仅是约定就足够了(更少的项目可能更容易管理)
  • 您使用的工具如何受项目数量/大小的影响