zoukankan      html  css  js  c++  java
  • 整洁架构

    站在 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

  • 相关阅读:
    linux 下的文件IO基础
    git命令-切换分支
    专利搜索引擎
    在此位置打开CMD
    2017 JAVA神器 Btrace详细介绍
    linux下的find文件查找命令与grep文件内容查找命令
    Linux如何查看JDK的安装路径
    JavaScript SetInterval与setTimeout使用方法详解
    ssh 登录出现Are you sure you want to continue connecting (yes/no)?解决方法
    ssh连接提示 "Connection closed by remote host"
  • 原文地址:https://www.cnblogs.com/sunormoon/p/10925743.html
Copyright © 2011-2022 走看看