领域建模中的聚合与仓库:概念、实现与应用
1. 领域建模基础
在进行系统设计时,无论是部署在传统 IT 环境还是云端,领域建模都是至关重要的环节。通过事件风暴会议,利益相关者聚集在一起,更好地理解和描述系统的领域及子领域细节。然而,在建模过程中,会遇到一些挑战。
敏捷团队通常会快速着手处理用户故事并开始编码系统功能。他们会创建与当前对系统理解相对应的对象或数据结构。但当需要理解同一概念的不同观点如何应用时,问题就出现了,可能会导致出现多个名称和职责略有不同的类,或者更糟糕的是,出现职责差异很大且共享大量数据的庞大类。
领域模型是对系统中现实世界概念的表示,它描述了系统中不同类型的事物、值以及它们之间的关系。在子领域中划分和正确描述概念并非易事,需要仔细考虑每个数据片段的所有权、生命周期以及不同观点适用的上下文。
2. 实体与值对象
系统中所需的事物类型概念由来已久,通常被称为实体。实体是系统内具有意义的领域概念,因此具有唯一标识符。例如,在线订购系统中的订单就是一个实体。实体几乎总是具有值,有些值是简单类型,如字符串或整数,像订单的订单日期;而有些值则较为复杂,如价格,它可能包含数值和货币信息。
除了实体,还有值对象(ValueObjects,简称 VOs)。值对象的身份完全由其状态定义,通常是不可变的,且没有 ID 或生命周期,但它们往往具有行为。可以将其视为智能变量,例如重量值对象可能有一个将磅转换为克的函数。两个所有属性值都相同的值对象被认为是相等的,并且值对象只有与相关实体关联才有意义。
3. 聚合的概念
聚合是一组领域对象(实体和值对象)的集合,可以被视为一个单一
超级会员免费看
订阅专栏 解锁全文
858

被折叠的 条评论
为什么被折叠?



