PhalApi中的ADM分层模式

在传统Web框架中,惯用MVC模式。然而,接口服务这一领域,与传统的Web应用所面向的领域和需要解决的问题不同,最为明显的是接口服务领域中没有View视图。

接口服务除了需要处理输入和输出,以及从持久化的存储媒介中提取、保存、删除、更新数据外,还有一个相当重要且不容忽视的任务——处理特定领域的业务规则。而这些规则的处理几乎都是逻辑层面上对数据信息的加工、转换、处理等操作,以满足特定场景的业务需求。基于以上考虑,在MVC模式的基础上,PhalApi框架去掉了View视图层,添加了Domain领域业务层。形成Api-Domain-Model模式,简称ADM模式。

  • Api层 称为接口服务层,负责对客户端的请求进行响应,处理接收客户端传递的参数,进行高层决策并对领域业务层进行调度,最后将处理结果返回给客户端。
  • Domain层 称为领域业务层,负责对领域业务的规则处理,重点关注对数据的逻辑处理、转换和加工,封装并体现特定领域业务的规则。
  • Model层 称为数据模型层,负责技术层面上对数据信息的提取、存储、更新和删除等操作,数据可来自内存,也可以来自持久化存储媒介,甚至可以是来自外部第三方系统。

ADM模式图示如下:

ADM模式

API层

Api接口服务层应该做:

  1. 应该:对用户登录态进行必要的检测
  2. 应该:控制业务场景的主流程,创建领域业务实例,并进行调用
  3. 应该:进行必要的日记纪录
  4. 应该:返回接口结果
  5. 应该:调度领域业务层

Api接口服务层不应该做:

  1. 不应该:进行业务规则的处理或者计算
  2. 不应该:关心数据是否使用缓存,或进行缓存相关的直接操作
  3. 不应该:直接操作数据库
  4. 不应该:将多个接口合并在一起

Domain层

Domain领域业务层应该做:

  1. 应该:体现特定领域的业务规则
  2. 应该:对数据进行逻辑上的处理
  3. 应该:调度数据模型层或其他领域业务层

Domain领域业务层不应该做:

  1. 不应该:直接实现数据的操作,如添加并实现缓存机制

Model层

Model数据模型层应该:

  1. 应该:进行数据库的操作
  2. 应该:实现缓存机制

results matching ""

    No results matching ""