DDD领域驱动模型设计

news2024/11/19 15:38:06

醍醐灌顶了朋友们

第一次写ddd还是

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

独立功能

应用层:组织业务逻辑

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

数据仓库:

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

实体: 

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

实体与值对象:

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

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

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

屏蔽内部实现:

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

业务稳定:

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

yyds

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频号小店为什么这么火呢?这个项目有哪些优点?

大家好,我是电商小V 今天可以说又爆火了一个电商项目,也是吸引了很多创业小伙伴的目光,你猜的没错,这个项目就是“视频号小店”,一度被认为是今年的风口期项目, 前几天在外面吃饭的时候,听到隔壁…

车载测试系列:入行车载测试分享

车载测试前景如何? 软件定义汽车时代的发展趋势,随着控制器自主开发力度的加强,作为V流程中必备环节,车载测试工程师岗位需求会越来越多;控制器集成化,功能集成程度越来越高,对于测试工程师的知…

linux中进程相关概念(一)

什么是程序,什么是进程,有什么区别? 程序是静态的概念,当我们使用gcc xxx.c -o pro进行编译时,产生的pro文件,就是一个程序。 进程是程序的一次运行活动,通俗点就是说程序跑起来了就是进程。 …

docker学习笔记(四)制作镜像

目录 第1步:编辑Dockerfile 第2步:编辑requirements.txt文件 第3步:编辑app.py文件,我们的程序文件 第4步:生成镜像文件 第5步:使用镜像,启动容器 第6步: 启动redis容器、将容器…

PLC数据采集网关的功能和特点-天拓四方

一、引言 随着工业自动化程度的不断提高,数据在生产线上的作用愈发重要。PLC作为工业自动化的核心设备,其数据采集和处理能力直接影响到整个生产线的效率和稳定性。而PLC数据采集网关,作为连接PLC与外部系统的桥梁,正日益受到人们…

我的Transformer专栏来啦

五一节前吹的牛,五一期间没完成,今天忙里偷闲,给完成了。 那就是初步拟定了一个《Transformer最后一公里》的写作大纲。 之前一直想写一系列Transformer架构的算法解析文章,但因为一直在忙(虽然不知道在忙啥&#xf…

YOLOv8 Tensorrt Python/C++部署详解

按照大佬的方法进行部署,但是中间出现了很多问题,这里进行一下总结。 YOLOv8 Tensorrt Python/C部署教程_yolo 安装tensorrt-CSDN博客https://blog.csdn.net/weixin_45747759/article/details/130341118 Monday-Leo/Yolov5_Tensorrt_Win10: A simple i…

即插即用 | YOLOv8热力图可视化方法详解,揭秘AI如何「看」世界!【附完整源码】

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

TypeScript学习日志-第十七天(泛型约束)

泛型约束 当我们使用泛型时非常方便,但是在使用的过程中也会遇到很多问题,如图: 这时候就会提示错误,因为返回的是相加的值,但是不是所有的类型都能相加的,例如来个undefined类型的 就不能进行相加了&…

锂电池恒流恒压CCCV充电模型MATLAB仿真

微❤关注“电气仔推送”获得资料(专享优惠) CCCV简介 CCCV充电过程是恒流充电(CC)和恒压充电(CV)的结合。在CC阶段对电池施加恒定电流,以获得更快的充电速度,此时电池电压持续升高…

docker安装Debian:11 freeswitch1.10.5

文章目录 一、生成一个镜像二、切换一个镜像源为阿里源三、安装一些相关依赖和freeswitch3.1第一步:安装freeswitch-mod和下载所需的依赖项3.2 设置密钥3.3 安装freeswitch所需的依赖项3.4 报错3.4.1 报错13.4.2 报错23.4.3 报错3 四、运行4.1 通话三十秒自动挂断 一…

Hotcoin Research | 模块化将是大势所趋:拆解模块化区块链的现状和未来

关于模块化区块链叙事的讨论源于Celestia和其代币TIA的亮眼表现。实际上,模块化是未来区块链设计的主要发展方向和大势所趋。模块化区块链就像乐高积木一样,将区块链系统拆分为可重用的模块,通过定制组合可实现不同功能的区块链网络。这种灵活…

【半个月我拿下了软考证】软件设计师高频考点--系统化教学-网络安全

👨‍💻 收录于专栏:软件设计师考点暴击 ⭐🅰️进入狂砍分⭐ ⭐软件设计师高频考点文档, ⭐软件设计师高频考点专栏 ⭐软件设计师高频考点⭐ 🎶(A) 考点1,网络攻击 理解记忆 &#…

融知财经:期货在哪里可以交易?期货交易有哪些交易规则?

作为当前金融市场的一种投资方式,期货只适合一些投资者,比如想获得高收益的投资者,因为期货的风险系数很高。但是很多投资者还不知道期货的意思,在一个固定的交易场所,期货是买卖标准化商品或金融资产的远期合约的交易…

软件1班20240509

文章目录 1.JDBC本质2.增3.改4.删5.查6.JDBC标准写法 1.JDBC本质 重写 接口的 方法 idea 报错 – 不动脑 alt enter 知道没有重写方法 CTRL o 重写 方法 快捷键 package com.yanyu;/*** Author yanyu666_508200729qq.com* Date 2024/5/9 14:42* description:*/ public interf…

使用QLoRA在自定义数据集上finetuning 大模型 LLAMA3 的数据比对分析

概述: 大型语言模型(LLM)展示了先进的功能和复杂的解决方案,使自然语言处理领域发生了革命性的变化。这些模型经过广泛的文本数据集训练,在文本生成、翻译、摘要和问答等任务中表现出色。尽管LLM具有强大的功能,但它可能并不总是与特定的任务或领域保持一致。 什么是LL…

oracle 数据库找到UDUMP的文件名称

oracle 数据库找到UDUMP的文件名称 select p.value||\||i.instance_name||_ora_||spid||.trc as "trace_file_name" from v$parameter p ,v$process pro, v$session s, (select sid from v$mystat where rownum1) m, v$instance i where lower(p.name)user_dump_…

红米Turbo3小米平板6SPro澎湃OS系统强解BL锁-跳小米社区绑定-刷ROOT权限

红米Turbo3小米平板6SPro这2款设备都出厂为澎湃OS系统,官方提供都是小米社区申请解锁权限,然后自己答题解锁,门槛非常高,想要玩机root的用户,都在堵在门外。还在这目前这两款机型官方并没有加入强制验证,在…