美文网首页
25.命令:用于处理业务用例的程序的服务模式

25.命令:用于处理业务用例的程序的服务模式

作者: 鸿雁长飞光不度 | 来源:发表于2022-08-29 23:47 被阅读0次

DDD应用程序分为四层结构,应用层位于领域层之上。

image.png

1.区分应用程序逻辑和领域逻辑

1.1 应用层的处理的相关逻辑

  • 负责基础架构相关问题
    管理事务、发送电子邮件类似的技术任务。
  • 协调领域
    调用多个domain完成实现业务逻辑。
  • 事务
    开启一个事务,在事务中调用domain层,根据业务逻辑清晰的设定边界。
  • 错误处理和转换
    将domain层的错误转换成应用层的错误,返回给用户接口层。
  • 日志、指标、监控
    打印请求和返回结果、上报metric、监控耗时一般都是在框架级别支持,大多用拦截器和中间件实现。
  • 认证和授权
    判断用户是否登录、是有具备权限。
  • 在有界上下文之间传递事件
    有界上下文发生的事件会影响其他有界上下文处理事件时,通过应用层转发。
  • 验证参数
    验证请求参数合法(因为领域层不关心这些)

1.2 应用程序逻辑和领域程序逻辑的边界怎么区别?

应用层不包含业务逻辑,但是应用层要调用不同的domain实现功能比较矛盾。

决定一系列调用是否属于领域逻辑的方式是思考【这些步骤无法分开么】或者【这种情况总是会出现么】如果答案是肯定的就应该放在领域层,否则说明是步骤是任意组合的,需要放在应用层,此外领域逻辑的每次迭代都具有表述性。

2.应用层的实现方式

2.1 命令处理模式

命令处理模式,能够避免具有许多问题的大型应用程序

应用层可能有类似下面的接口,接口很多,每个方法实现可能差异较大,业务复杂时冲突会比较多。

image.png image.png image.png image.png

就是把原来位于一个文件的实现分别放在了不同的命令文件里面,减少了冲突,同时对于需要通用处理的,通过泛型实现了责任链模式,将不同的命令串起来了。

2.2 发布订阅

image.png

一种松耦合实现,当命令传入领域中并且不接收返回值时可以使用。

2.3 请求回复模式

用的最多,就是顶一个request、response的DTO,构造请求并返回响应结果的模式。

相关文章

  • 25.命令:用于处理业务用例的程序的服务模式

    DDD应用程序分为四层结构,应用层位于领域层之上。 1.区分应用程序逻辑和领域逻辑 1.1 应用层的处理的相关逻辑...

  • Android 命令模式

    Android 设计模式系列文章 Android 23种设计模式 前言 命令模式,多被用于程序菜单命令。比如遥控器...

  • Spring|MVC

    MVC 设计模式概述 Model(模型)模型包含业务模型和数据模型,业务模型用于处理业务,数据模型用于封装数据。 ...

  • 创建型模式

    创建型模式(Creational Pattern)主要用于处理对象的创建问题,包括: 单例模式 工厂模式 建造者模...

  • 请求转发和重定向

    1、 定义 Forward(请求转向):服务器程序内部请求转向,这个特性允许前一个程序用于处理请求,而后一个程序用...

  • Android 单例和建造者 模式

    Android 单例模式 是运用最广泛的设计模式之一, 单例模式的类必须保证只有一个实例存在。多用于整个程序只需要...

  • Android设计模式——单例模式

    前言 单例模式是运用最广泛的设计模式之一,在应用这个模式时,单例模式的类必须保证只有一个实例存在。多用于整个程序只...

  • 《掌握需求过程》学习笔记3-1

    针对每个业务事件,有一个预先计划的对它的响应,被称为“业务用例(BUC)”。业务用例总是包处理过程的含一些可识别的...

  • Mac下 open、open -a与open -e的区别

    Open命令用于打开文件、目录或程序 open,使用关联的程序打开文件,例:open a.txt会用文本编辑打开a...

  • MVP开发模式及简单架构封装

    MVP开发模式 Model: 主要用于业务操作,如:网络请求,数据存储等 Presenter: 主要用于逻辑处理,...

网友评论

      本文标题:25.命令:用于处理业务用例的程序的服务模式

      本文链接:https://www.haomeiwen.com/subject/xaeknrtx.html