领域驱动模型之各层实体严格分层处理

为什么要分层处理呢?

在领域驱动模型中,分为应用层(application)、领域层(domain)、基础设施层(infrastructure)。各层只能处理和访问自己所属层的 entity 或者 dto 对象,不能跨层访问。上层访问下层服务的时候,需要 converter 为下层所关注的实体对象,禁止一个实体对象贯穿所有层,防止上层代码污染或者侵入下层代码。

各层的职责是什么?

应用层:负责接收业务请求,并负责调用外部系统、内部领域层的业务系统,完成数据组装;
领域层:只关注当前业务领域内的属性和行为,并封装领域内相关的数据处理逻辑,实现高内聚的设计原则;
基础设施层:负责将领域层的数据进行持久化工作,封装具体的持久化策略。根据不同的策略,可以将数据持久化到关系型数据库、非关系型数据库、云存储、中间件等存储介质上。

领域层(核心)如何与上下文交互?

在领域层定义领域模型中的 Entity 对象、Value 对象,其中 Entity 对象必须是可以通过某个属性唯一标识,而 Value 对象中的属性值是可以随时替换、不具备唯一性。
Entity 对象与Value 对象的作用范围只能在 domain 层,不能跨越到上层应用层,不能侵入下层基础设施层。具体上下文如何访问如下图:
在这里插入图片描述

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

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

相关文章

软件测试|MySQL逻辑运算符使用详解

简介 在MySQL中,逻辑运算符用于处理布尔类型的数据,进行逻辑判断和组合条件。逻辑运算符主要包括AND、OR、NOT三种,它们可以帮助我们在查询和条件语句中进行复杂的逻辑操作。本文将详细介绍MySQL中逻辑运算符的使用方法和示例。 AND运算符 …

门店管理系统驱动智慧零售升级

在当今数字化经济的大潮中,实体门店正在经历一场由内而外的深度变革。门店管理系统以其高效、便捷和全面的功能特性,为实体店提供了高效的运营解决方案。 门店管理系统拜托了传统零售业对本地化软件的依赖,它将复杂的信息技术转化为易于获取…

【obj To 3DTiles 格式转换】 可以自定义经纬高、属性表等参数 (一)

目录 0 引言1 3DTiles数据2 objTo3DTiles2.1 工具的安装2.1.1 拓展:Node.js 和 npm 2.2 工具的使用2.2.1 输出成瓦片数据2.2.2 输出带有坐标参数的瓦片数据 3 查看3DTiles数据 🙋‍♂️ 作者:海码007📜 专栏:Cesiumfor…

公司网站被攻击了该怎么办,教你如何解决网站被攻击的办法!

最近企业网站被攻击的比较多,碰到这些情况我们都很深恶痛绝,好好的一个站,而且用了很长时间的网站和域名就这样废掉了,实在是可惜。今天主要给大家分享一下,什么样的网站容易被攻击,网站被攻击后该如何处理…

科技感十足界面模板

科技感界面 在强调简洁的科技类产品相关设计中,背景多数分为:颜色或写实图片两种。 颜色很好理解,大多以深色底为主。强调一种神秘感和沉稳感,同时可以和浅色的文字内容形成很好的对比。 而图片背景的使用,就要求其…

从零学Java List集合

Java List集合 文章目录 Java List集合1 List 集合2 List实现类2.1 ArrayList【重点】2.2 LinkedList2.3 Vector (已废弃) 3 数据结构: 栈, 队列 1 List 集合 特点:有序、有下标、元素可以重复。 有序: 添加与遍历的顺序是一致的;有下标: 可以使用普通for循环;元素可…

从生活入手学编程(1):Edge浏览器设置自动刷新专业教程

一、前言 我们都知道,Edge浏览器运行时的速度卡的实在是感人…… 于是今天,我就突发奇想,来看一看怎么刷新并且还能保留页面内容。 二、探索 首先,我在此提醒您,在使用这种方法时要非常小心。因为更改网页源代…

SaaS先驱Salesforce发展史

Salesforce是云计算和SaaS领域的先驱,大致经过5个不同发展阶段 第一个阶段:SaaS CRM发展初期 Salesforce成立时间是1999年,其SaaS业务的Idea的灵感起源于IaaS巨头亚马逊。初期标榜的竞品Siebel早期投入高、很难上手、功能过于复杂、实用性不强…

75应急响应-数据库漏洞口令检索应急取证箱

必要知识点 第三方应用是选择性的安装的,比如mysql,如何做好信息收集,有没有爆过它的漏洞,和漏洞探针也是获取攻击者思路的重要操作,除去本身漏洞外,提前预知或口令相关攻击也要进行筛选。 排除三方应用…

《网络是怎样连接的》2.5节图表(自用)

图5.1:ip包结构 图5.2:ip网络包的传输方式 1.以太网的部分也可以替换成其他的东西,例如无线局域网、ADSL、FTTH等,它们都可以替代以太网的角色帮助IP协议来传输网络包 2.根据ARP协议,客户端可以根据ip地址得到下一个路…

Python如何使用Excel文件

使用Python操作Office——EXCEL 首先介绍下office win32 com接口,这个是MS为自动化提供的操作接口,比如我们打开一个EXCEL文档,就可以在里面编辑VB脚本,实现我们自己的效果。对于这种一本万利的买卖,Python怎么能放过…

白嫖aws创建Joplin server服务器

网上有很多的Joplin服务器的搭建教程,但是基本都是抄来抄去,对初学者实在是太不友好了。 话不多说,说干就干,自己从头找资料搭了一个,这可能是全网最好的Joplin服务器搭建教程了。 aws服务器 aws的服务器还是很香的&…