架构分层中单独组件的好处?

Sam*_*Sam 0 architecture asp.net-mvc

我正在使用 EF --> Repositories/UnitOfWork --> Services --> MVC 3 分层方法,我只是想知道使用单独的程序集或组合程序集中的某些逻辑层的优点/缺点是什么。

基本上我要问的是,如果您对合同(接口)而不是实现进行编程,您可以在单个程序集中完成它,对吗?

usr*_*usr 5

使用程序集,您可以仅使用内置工具强制分层。

不过,您可以使用命名空间实现相同的效果。您只需要一个能够验证命名空间依赖关系的工具,例如 NDepend。

接口与此讨论无关。它们提供编译时分离。运行时依赖性仍然存在。只是静态时不可见。

从构建性能的角度来看,更少的组件通常更可取。它们有时也会妨碍(“检测到循环引用!”)。