时间聚合定义和作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间聚合定义和作用相关的知识,希望对你有一定的参考价值。
时间聚合定义和作用聚合与聚合根的含义
聚合: 聚合往往是一些实体为了某项业务而聚类在一起形成的集合 , 举个例子, 社会是由一个个的个体组成的,象征着我们每一个人。随着社会的发展,慢慢出现了社团、机构、部门等组织,我们开始从个人变成了组织的一员,大家可以协同一致的工作,朝着一个最大的目标前进,发挥出更大的力量。领域模型内的实体和值对象就好比个体,而能让实体和值对象协同工作的组织就是聚合,它用来确保这些领域对象在实现共同的业务逻辑时,能保证数据的一致性。可以这么理解,聚合就是由业务和逻辑紧密关联的实体和值对象组合而成的,聚合是数据修改和持久化的基本单元,每一个聚合对应一个仓储,实现数据的持久化。
聚合根 : 前面有提到, 聚合有一个聚合根和上下文边界,这个边界根据业务单一职责和高内聚原则,定义了聚合内部应该包含哪些实体和值对象,而聚合之间的边界是松耦合的。按照这种方式设计出来的微
服务很自然就是“高内聚、低耦合”的。聚合根的主要目的是为了避免由于复杂数据模型缺少统一的业务规则控制,而导致聚合、实体之间数据不一致性的问题。传统数据模型中的每一个实体都是对等的,如果任由实体进行无控制地调用和数据修改,很可能会导致实体之间数据逻辑的不一致。而如果采用锁的方式则会增加软件的复杂度,也会降低系统的性能。
如果把聚合比作组织,那聚合根就是这个组织的负责人。聚合根也称为根实体,它不仅是实体,还是聚合的管理者。首先它作为实体本身,拥有实体的属性和业务行为,实现自身的业务逻辑。其次它作为聚合的管理者,在聚合内部负责协调实体和值对象按照固定的业务规则协同完成共同的业务逻辑。
最后在聚合之间,它还是聚合对外的接口人,以聚合根 ID 关联的方式接受外部任务和请求,在上下文内实现聚合之间的业务协同。也就是说,聚合之间通过聚合根 ID 关联引用,如果需要访问其它聚合的实体,就要先访问聚合根,再导航到聚合内部实体,外部对象不能直接访问聚合内实体。
怎样设计聚合?
DDD 领域建模通常采用事件风暴,它通常采用用例分析、场景分析和用户旅程分析等方法,通过头脑风暴列出所有可能的业务行为和事件,然后找出产生这些行为的领域对象,并梳理领域对象之间的关系,找出聚合根,找出与聚合根业务紧密关联的实体和值对象,再将聚合根、实体和值对象组合,构建聚合。 参考技术A 时间聚合定义和作用,时间聚合与时间调整原则
时间聚合原则:模块内部的各个组成部分所包含的处理动作必须在同一时间内执行。时间状态聚合规则不受成员安全性影响。时间状态聚合规则不受属性安全性影响。过程聚合:模块内部的各个组成部分所要完成的动作虽然没有关系,但必须按特定的次序执行。通信聚合:模块的各个组成部分所完成的动作都使用了同一个数据或产生同一输出数据。
时间调整原则:意识到时间的存在。怎么才算意识到时间呢?给自己划分几个时间块。合理分块,那个版块解决什么问题。
比如,我一天开始的时间,需要解决起床、收拾、吃饭、踩单车上班,大概2-3小时足够了,
以上是关于时间聚合定义和作用的主要内容,如果未能解决你的问题,请参考以下文章