领域驱动模型设计与微服务架构落地(三)

devtools/2024/11/10 10:57:08/

1.领域模型

领域模型( domain model 是对领域内的概念类或现实世界中对象的可视化表示。
这种官方概念一向是最复杂难以理解的了,其实我们的领域模型在我们的业务当中也有一个名字,叫做
业务对象模型。很明显,我们能够从名字上就能够看出来,我们的业务对象模型是用来描述业务对象之
间的引用关系的。
那么什么是我们的业务对象呢。实际上我们的业务对象分为三种
业务角色 ,业务角色表示的是一个角色承担的一系列责任。比如收银员,他的责任是计算商品价
格,收钱,找零,甚至退换货。
业务实体 ,业务实体表示的是其实你使用或者可交付的工件,资源,事件。比如电商项目中的商
品。你需要给卖家打印的发票。
业务用例 ,实际上业务用例显示的是协作角色与业务实体之间如何执行工作流程,也就是我们的业
务链路。
实际上,业务对象模型就是将实体的概念以及行为的概念结合起来了。也就是说,整理起来 ,就是你的 业务逻辑流转以及中途所需要的角色。
那么领域模型实际上也分为很多的种类

2.失血模型

第一种叫做失血模型,失血模型实际上就是我们的对象模型中只包含我们的 get set 方法,像我们的排序,分页等等任何的通用性操作都不会包含在我们的对象中。这种逻辑实际上会让我们的领域模型比较傻瓜式。什么意思呢?我们的失血模型是没有Dao 层的,我们所有的业务会全部写在我们的 Service 当 中。所以,一般情况下,我们是不推荐用这种模型的,不过,也有同学正在使用这种方式。
举例代码 ;
java">//基于失血模型的模型实现
public class User implements Serializable {
private Long id;
private String age;
//创建用户时间
private Date createTime ;
//最后修改用户信息时间
private Date UpdateTime;
public Date getCreateTime() {
return createTime;
}
public Date getUpdateTime() {
return UpdateTime;
}
public String getAge() {
return age;
}
public Long getId() {
return id;
}
public void setAge(String age) {
this.age = age;
}
public void setId(Long id) {
this.id = id;
}
}
持久化操作:
java">//定义业务逻辑接口
public interface UserDao{
public void save(User user){}
public void findAll(){}
}
//业务逻辑

http://www.ppmy.cn/devtools/100773.html

相关文章

前端面试宝典【CSS篇】【7】

在前端开发的世界里,每一次面试都是一次机遇,也是一次挑战。 你是否曾因技术深度不够而错失良机? 或是面对最新的技术趋势感到迷茫? 我们的【前端面试宝典】正是为此而来。 由拥有多年一线实战经验的资深工程师亲自授课,结合最新的行业动态与实战案例,旨在全面提升你的技…

Compose 跨页面发送消息使用Channel还是全局ViewModel好?

复杂的app 难免遇到 跨页面传递消息的问题,那么使用 Channel 和全局共享viewModel的形式 对于跨页面传递消息,哪个方案 更好一些呢? AI 回答: 它触及了应用架构设计的核心。让我们比较一下使用 Channel 和全局共享 ViewModel 这…

Java把文件链接转成流,返回给前端下载

背景:已知Java拿到了一个PDF链接(http://xxx.xxx.pdf),直接把链接返给前端的话,前端是不能点击直接下载的,需要后端先把url转成文件流,再由前端下载,处理如下: 导入pom&a…

Graylog日志丢失解决方案

问题描述 目前公司使用的日志方案是Graylog5.0版本,当接入的日志并发多时,就会出现日志丢失的情况。 目前硬件系统centos7.9 内核5.16.13。一台graylog和一台es服务器。 两台机器硬件配置 graylog CPU 36C 内存 150G 系统硬盘 500G (固态&…

独立开发者系列(44)——PHP的CLI运行模式

所有的编程语言,最开始,测试执行的方式,都是写好xx.xx后缀是各种语言标记,然后使用解释器直接执行,就可以看到hello world。这种执行模式被称之为CLI模式,无需依赖服务器,可以直接跑&#xff0c…

零基础5分钟上手亚马逊云科技-利用MQ为应用解耦

简介: 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…

软件运维实施维保方案(Doc完整版原件)

1.项目情况 2.服务简述 2.1服务内容 2.2服务方式 2.3服务要求 2.4服务流程 2.5工作流程 2.6业务关系 2.7培训 3.资源提供 3.1项目组成员 3.2服务保障 软件全套资料部分文档清单: 工作安排任务书,可行性分析报告,立项申请审批表,产…

大数据技术之Flume 企业开发案例——负载均衡和故障转移(6)

目录 负载均衡和故障转移 1)案例需求 2)需求分析 3)实现步骤 负载均衡和故障转移 1)案例需求 使用 Flume1 监控一个端口,其 sink 组中的 sink 分别对接 Flume2 和 Flume3,采用 FailoverSinkProcessor…