首页 > 其他分享 >领域驱动设计(DDD)理解(持续更新...)

领域驱动设计(DDD)理解(持续更新...)

时间:2024-08-27 18:51:16浏览次数:12  
标签:服务 ... 聚合 小组 领域 科室 组员 驱动 DDD

应用服务:可以理解为科室A。

聚合:可以理解为小组。聚合1(小组1)、聚合2(小组2)、聚合3(小组3)。

组长是聚合根实体,组员是实体。

和其他聚合交流(调用),要先通过组长(聚合根实体),组长来找到组员(一般实体)。

每个组员可以自己提供领域服务,也可以和其他组员合作领域服务(跨实体领域服务)。

尽量不要跨聚合。比如小组1的组员和小组2的组员合作提供领域服务1,这样会导致聚合1(小组1)、聚合2(小组2)产生耦合。

比如在领域服务1中,小组1组员和小组2组员产生了联系,小组1组员改动,小组2组员就也要改,小组2聚合就要改。这就耦合了,不太好。

每个小组(聚合)分别提供自己领域的若干领域服务,科室A(应用服务)来组合编排,形成科室A的微服务,对外提供。

科室A(应用服务)可以跨小组(聚合)编排领域服务。

科室A就是一个包含三个聚合(三个小组)的限界上下文。在科室A内部,用同一种业务语言沟通。科室A作为应用服务,组合三个小组的领域服务,向外提供科室A微服务。

等有一天,小组1觉得需要独立了,就把聚合1拆出来,作为独立的限界上下文,形成另一个微服务。这个微服务的领域层只有聚合1一个聚合。

所以聚合是DDD中,可以说最重要的概念。

聚合是可以单独拆出来,成一个独立的领域模型(领域层),然后结合通用的用户接口层、基础层、应用层,成为一个可以独立部署的微服务(软件包)的。

标签:服务,...,聚合,小组,领域,科室,组员,驱动,DDD
From: https://blog.csdn.net/sunheng9526/article/details/141560932

相关文章

  • Debian12、Ubuntu22安装英特尔wifi驱动
    1、打开英特尔®无线适配器的Linux*支持查看wifi所需的内核版本 以AX200为例,需要Linux内核版本为5.1,Debian12默认内核版本为6.1,Ubuntu24默认内核版本为6..8,因此不需要更新内核。 2、打开适用于Linux*的英特尔®无线Wi-Fi驱动程序下载内核(非必要步骤)和驱动。3、安......
  • AI驱动的PlantUML:快速生成专业级UML图表
    **对于程序员来说,编写验收文档中的各种UML图是最让人头疼的事情之一,相信各位读者对此深有体会。**本文将探讨如何利用AI驱动的PlantUML来快速生成专业级别的UML图表,从而减轻这一负担。PlantUML简介PlantUML是一种开源的、易于使用的工具,它允许用户通过简单的文本描述来生成各......
  • AP3466 外围简单 输入4-30V 3.6A 降压恒压驱动芯片 充电器方案
    产品描述AP3466是一款支持宽电压输入的同步降压电源管理芯片,输入电压4-30V范围内可实现3.6A的连续电流输出。通过调节FB端口的分压电阻,设定输出1.8V到28V的稳定电压。AP3466具有优秀的恒压/恒流(CC/CV)特性。AP3466采用电流模式的环路控制原理,实现了快速的动态响应。A......
  • selenium4在使用 下载驱动的时候报错: THIRD_PARTY_NOTICES.chromedriver
    在使用seeleniun自动下载驱动时报错:THIRD_PARTY_NOTICES.chromedriver原来的代码运行一直没有错误的,现在运行后下载下来的驱动是上面的格式导致运行报错,在github和google上查了官方已经修复在4.0.2版本中已经修复通过重新安装或者升级安装pipuninstallwebdriver-manag......
  • 国产游戏技术:创新驱动下的全球影响力
    国产游戏技术能否引领全球?前言技术亮点:国产游戏的创新之路面临的挑战:技术创新与市场适应发展机遇:拥抱新技术,拓展国际市场IT技术创新:推动行业发展的新引擎人才需求:技术人才的紧缺与机遇结语:国产游戏的全球影响力前言  近年来,国产游戏行业蓬勃发展,技术水平不断提升,多......
  • 学习真DDD的最佳路径
    本文书接上回《DDD是软件工程的第一性原理?》,关注公众号(老肖想当外语大佬)获取信息:最新文章更新;DDD框架源码(.NET、Java双平台);加群畅聊,建模分析、技术实现交流;视频和直播在B站。假DDD的特征在开始之前,考虑到目前关于DDD的资料非常多且杂,我们需要具备分辨的能力,确保不......
  • k8s集群使用私有仓库通过containerd上传镜像(没解决...)
    查阅资料根据containerd中部分文档https://github.com/containerd/containerd/blob/release/1.5/docs/cri/registry.mdhttps://github.com/containerd/containerd/blob/release/1.5/docs/hosts.mdhttps://blog.csdn.net/u010566813/article/details/125990298最终私有......
  • verilog-UART驱动流程
    目录1.理论介绍       2.verilog代码实现 1.理论介绍               UART(Universalasynchronousreceivers-transmitter,通用异步收发器)数据帧结构如下图,zynq7020-PL侧的时钟频率fclk一般设置为50MHz,假设串口波特率为115200bps,则一个1bit传输需......
  • 无刷电机驱动技术有哪些技术难点?
    无刷电机驱动涉及多个技术难点,主要包括以下几个方面:1.位置检测与控制:无刷电机需要精确地检测转子位置以进行换相控制。常见的方法包括使用霍尔传感器或采用无传感器技术。无传感器控制在低速时尤其具有挑战性,因为反电动势信号较弱且容易受到噪声干扰。2.换相控制:换相时序......
  • 【PyTorch】n卡驱动、CUDA Toolkit、cuDNN全解安装教程
    @目录GPU、NVIDIAGraphicsDrivers、CUDA、CUDAToolkit和cuDNN的关系使用情形判断仅仅使用PyTorch使用torch的第三方子模块安装NVIDIAGraphicsDrivers(可跳过)前言Linux法一:图形化界面安装(推荐)法二:手动下载文件后命令行安装(不推荐)windows法一:GeForceExperience自动安装法二:手动......