【发布时间】:2018-07-13 08:08:07
【问题描述】:
假设我想要实现一个基于 Uncle Bobs Clean Architecture 的 ASP.NET 应用程序。据我了解:
- Asp.Net 本身将在框架圈内
- Asp.Net 控制器将位于网关/接口适配器层中
- 我的业务逻辑将在用例/实体层中
依赖规则说只允许从外圈到内圈的依赖。
据我了解,依赖规则不仅与控制流有关,而且通常与代码级别的依赖有关。
但是:为了在“网关”圈子中有一个 Asp.Net 控制器,它必须从 Asp.Net 控制器类派生。
问题:这会不会违反依赖规则,因为这会引入从“网关”圈到“框架”圈的编译时依赖性?
更新:我在最近的博文https://plainionist.github.io/Implementing-Clean-Architecture-AspNet/ 中更详细地讨论了这个问题
【问题讨论】:
-
IMO 控制器也是外圈的一部分,只是基础设施。控制器将功能委托给您的核心圈子中的类。
-
感谢您的评论。我想我会这样做。瘦框架层类只是将独立于框架的 DTO 转发给进行数据转换的实际控制器