DDD领域驱动模型设计

醍醐灌顶了朋友们

第一次写ddd还是

一路走来  丢失了东西 现在倒是也能找回来 只是有点可惜了 选择比努力更重要

独立功能

应用层:组织业务逻辑

领域:实体对象=领域,业务核心

数据仓库:

  • 不影响业务
  • 封装了数据操作,内部实现不需要关心
  • 形式:数据库提供对外接口 ,不管需要什么数据 直接从仓库中拿

实体: 

  • 属性 / 业务方法 封装到一起 充血模型,实体作用一目了然

实体与值对象:

  • stock ---  stockId --- stockDetail,访问detail只能通过stock对象访问,detail来源固定
  • 业务:造成实体状态变化的过程,新增/删除库存 
  • 业务方法和数据仓库的方法 区分开

隔离:接口 不需要关心实现

  • 隔离第三方系统的交互,通用接口来隔离,不需要关心细节,切换了中间件无感知

屏蔽内部实现:

跨实体方法:抽象接口/服务,抽象成领域服务,实现隔离

业务稳定:

  • 核心业务稳定,变化的业务变成调接口,逻辑清晰,数据流转与业务逻辑分离
  • 把造成业务变动的逻辑独立封装到新的接口/服务中,隔离具体实现

yyds

与技术无关/架构无关

比较全面 清晰架构

业务模型 隔离各种适配器(分类 主动http / 被动 mq ) 

领域调用方法:

  • 业务组织 调用 另一个 菱形架构 本地
  • 远程 RPC方式 / MQ,中间的通信机制 可替换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/682342.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一年十倍最重要的一点是:知止者胜

一年十倍的操作并不适合大资金投资者(200万元以上),所谓船小好掉头,大资金开仓数量较多,如果日内交易很容易出现无法及时按预定数量开仓,以及无法顺利进行平仓的麻烦。这样就使得资金更难实现预期赢利&…

C语言leetcode刷题笔记1

C语言leetcode刷题笔记1 第1题:136.只出现一次的数字两次遍历(O(numsSize^2))位运算 第2题:202.快乐数快慢指针记录历史数据 第3题:53.最大子数组和暴力求解(超时)动态规划分治 第1题&#xff1…

端口占用解决方法

1、查询端口 打开cmd命令提示符窗口,输入以下指令查询所有端口 netstat -ano //查询所有端口 netstat -ano|findstr 8080 //查询指定端口 2、杀死进程 taskkill /t /f /im 进程号(PID)

每日OJ题_记忆化搜索⑤_力扣329. 矩阵中的最长递增路径

目录 力扣329. 矩阵中的最长递增路径 解析代码1_爆搜递归(超时) 解析代码2_记忆化搜索 力扣329. 矩阵中的最长递增路径 329. 矩阵中的最长递增路径 难度 困难 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每…

如何预防最新的Mallox变种rmallox勒索病毒感染您的计算机?

导言: 在数字化浪潮中,网络安全如履薄冰。新兴的.rmallox勒索病毒,以其独特的攻击方式和狡猾的战术,给全球网络安全带来了前所未有的挑战。本文将深入剖析.rmallox勒索病毒的战术,并提出一系列创新的防御策略&#xf…

Windows系统下修改文件夹和U盘图标实战

文章目录 知识学习一、修改磁盘图标第一步、新建.INF文件第二步、放置图标第三步、重新插入U盘第四步、隐藏与显示文件知识拓展 二、修改文件夹图标设置图标样式恢复图标样式 在日常办公中使用的是windows系统,系统默认的文件图标都一样,不利于分类整理&…

【DFT】高 K/金属栅极阈值电压偏移的密度泛函模型

文章《Density functional model of threshold voltage shifts at High-K/Metal gates》,是由R. Cao、Z. Zhang、Y. Guo、J. Robertson等人撰写,发表在《Solid-State Electronics》期刊上。通过密度泛函理论(Density Functional Theory, DFT&…

【小白的大模型之路】基础篇:Transformer细节

基础篇:Transformer 引言模型基础架构原论文架构图EmbeddingPostional EncodingMulti-Head AttentionLayerNormEncoderDecoder其他 引言 此文作者本身对transformer有一些基础的了解,此处主要用于记录一些关于transformer模型的细节部分用于进一步理解其具体的实现机…

基于Spring Boot的公司OA系统设计与实现

基于Spring Boot的银行OA系统设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea 系统部分展示 用户登录界面,在银行OA系统运行后&#x…

linux调试

文章目录 1. 使用打印来调试1.1 重定向1.2 标准预定义宏1.3 日志代码 2. 内核异常2.1 内核打印2.1.1 打印级别2.1.2 跟踪异常2.1.3 动态打印2.1.4 RAM console 2.2 OOPS2.2.1 有源代码的情况2.2.2 没有源代码的情况 3 查看日志4 工具调试 1. 使用打印来调试 1.1 重定向 2>…

Java毕设之基于springboot的医护人员排班系统

运行环境 开发语言:java 框架:springboot,vue JDK版本:JDK1.8 数据库:mysql5.7(推荐5.7,8.0也可以) 数据库工具:Navicat11 开发软件:idea/eclipse(推荐idea) 系统详细实现 医护类型管理 医护人员排班系统的系统管理员可以对医护类型添加修改删除以及…

【每日刷题】Day35

【每日刷题】Day35 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 844. 比较含退格的字符串 - 力扣(LeetCode) 2. 2487. 从链表中移除节点 - 力…