【备战春招】第19天+如何生成对象关系图?

2023/2/27 6:21:00

本文主要是介绍【备战春招】第19天+如何生成对象关系图?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

课程名称:DDD(领域驱动设计)思想解读及优秀实践

课程章节: 战术设计

课程讲师: 尤达_技术咖啡

领域对象(Domain Object)也被称为实体类,它代表了业务的状态,且贯穿展现层、业务层和持久层,并最终被持久化到数据库中,可细分为 4 中类型:

PO(Persistent Object):持久化对象,表示持久层的数据结构(如数据库表);
DO(Domain Object):领域对象,即业务实体对象;
DTO(Data Transfer Object):数据传输对象,原来的目的是为 EJB 的分布式应用提供粗粒度的数据实体,以降低分布式调用的次数,提高分布式调用的性能,后来一般泛指用于展示层与服务层之间的数据传输对象,因此可以将 DTO 看成一个组合版的 DO;
VO(View Object):视图对象,用户展示层视图状态对应的对象。
从分层角度来说,PO,DO/DTO,VO 分别属于持久层、服务层、和展现层。对于简单模块来说,有时 PO、DO 和 VO 并没有什么区别,这时就没有必要分别定义 DO 和 VO 了,直接复用 PO 即可。

一个对象变更导致另外一个对象变更影响另外一个对象:例如:订单的状态,应该支付的状态,支付状态影响到了订单的状态。**

1,如何生成对象关系图?

第一步:先画出来,限界上下文模块。

第二步:画完限界上下文,从角色出发,角色引出第一个对象

第三步:找出对象创建或状态变更,所依赖的界限上下文,和对象。

第四步:重复第三步找到更多的对象,对象之间的调用可以是:事件通知(API调用和消息订阅(异步的方式))和命令通知

第五步:通过梳理出来的对象关系

战术模型如下图所示:

图片描述

设计元模型规定:只能由实体,值对象,领域服务和领域事件表示模型。聚合用于封装实体和值对象,并维持自己边界内所有对象的完整性。要访问聚合,只能通过聚合根的资源库,这就隐式地划定了边界和入口,有效控制了聚合内所有类型的领域对象。若聚合的创建逻辑比较复杂或存在可变性,可引入工厂来创建聚合内的领域对象。若牵涉到实体的状态变更,领域元模型建议使用领域事件来推动。



这篇关于【备战春招】第19天+如何生成对象关系图?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程