【发布时间】:2014-02-12 14:58:48
【问题描述】:
这个问题有点难解释,但我会尽力而为。
我有一个项目,我必须制作一个从第三方服务获取数据并进行反序列化和一些线程管理工作的 UI。
现在我的项目结构在 Visual Studio 中的一个解决方案下:
项目 A:用户界面
Project B:从第三方服务获取数据的 API
项目 C:线程管理器 API
注意: 项目B有IB接口,C有IC接口帮助依赖注入。 项目 B 和 C 将来会被其他团队使用。
项目 A 使用 IB 和 IC 接口进行依赖注入。
现在我将陈述我对国际奥委会的理解: DIP 表示高级模块不应该依赖于低级模块,高级模块和低级模块都应该依赖于抽象。如果要防止高层模块在低层模块发生变化时发生变化,则需要反转控制,使低层模块不会控制高层模块需要的接口和对象的创建。
根据上面的定义IB和IC接口都应该在项目A中定义吧? 如果他们在项目 A 中,那么其他团队将如何使用 IB 和 IC 接口? 我是否要创建另一个单独的项目来存储接口?
【问题讨论】:
-
您的 UI 进行了反序列化?这不是 UI 的东西...
-
不,我有一个单独的项目可以做到这一点。我在上面已经解释过了。
标签: c# design-patterns dependency-injection inversion-of-control