首页 > 技术文章 > 整洁架构

sunormoon 2019-05-26 15:57 原文

站在 MVC 和 EBI 的肩膀上

整洁架构示意图的右下角的这张小图说明了控制流是如何工作的。这张小图并没还有提供太多信息,但博客中的说明和 Robert C. Martin 的会议演讲拓展了该话题。

 
 

我们在上图的左侧看到的是 MVC 中的视图和控制器。双实线另一层的所有形状都是 MVC 中的模型。这些模型也代表着 EBI 架构(我们可以清楚的看到边界、交互器和实体),六边形架构中的“应用”、洋葱架构中的“应用核心”,以及前面整洁架构示意图中的“实体”层和“用例”层。

假设有一个 HTTP 请求按照控制流到达了控制器。控制器接下来会:

  1. 拆解请求;
  2. 使用相关数据创建一个请求模型;
  3. 执行交互器(作为交互器接口的,即边界的,实例被注入到控制器中)中的方法并将请求模型传递给它;
  4. 交互器会:
    4.1. 使用实体网关实现(作为实体网关接口的实例被注入到交互器中)查找相关实体;
    4.2. 编排实体之间的交互;
    4.3 用操作的数据结果创建响应模型;
    4.4 将响应模型交给展示器进行填充;
    4.5 将展示器返回给控制器;
  5. 使用展示器生成视图模型;
  6. 将视图模型绑定到视图;
  7. 将视图返回给客户端。

这里只有“展示器”的用法我有些疑问,我在项目中的实际做法和这里不太一样。我会某种 DTO 类型的数据返回给交互器,而不是注入一个填充了数据的展示器对象。

我通常会采用实际上是一种 MVP 实现,控制器在其中负责从客户端接收数据并响应它



作者:qinyu
链接:https://www.jianshu.com/p/b565f0c00c0c

推荐阅读