1、领域概念
领域模型:领域内的关键的概念、概念之间的关系
- 领域模型是概念模型
- 领域模型描述的是现实世界的事物和他们之间的关系
- 领域模型和软件无关,反映的是问题空间的本质理解
- 建议使用经过简化的 UML 类图表达领域模型
软件开发的最本质困难是复杂性,现实世界的复杂性一定会传导到软件中,深入探索,发现问题的本质,会简化问题的解决方案。
2、领域模型的价值
领域模型反映了问题域的认知
- 认知是企业的核心财产
- 深度认知可带来顺畅的需求沟通
- 深度认知可带来更好的产品架构
领域模型与领域资产有重要关联
- 好的领域模型反映业务本质
- 好的领域模型带来更快好的业务响应
3、如何发现领域模型
4、如何建立领域模型
除非做到统一语言,否则领域模型并不是真正的模型。
统一语言规则:任何在需求描述出现的概念,都必须出现在领域模型中。如果需求描述中存在概念之间的关系,领域模型中也必须有这个关系。
- 高质量领域模型的本质是持续演进
- 猜想与反驳是获得领域模型的基本方法
- 统一语言是领域模型发挥作用的手段,也是对领域模型的校验
5、领域中基础构造块
实体:唯一标识符跟踪具有重要业务意义的对象。但是对象会随着业务进展产生状态和属性的变更,但是他们代表的业务对象不变。
值对象:描述特征,只需关心值对象的属性,不关心是否有唯一标志符。
服务:业务逻辑并不和领域对象相关,本身代表一种商业策略或业务处理过程。服务自身无状态。
领域事件:
- 表达系统发生变化,给出业务活动的结果
- 可增强系统的回溯性,解耦业务的复杂性
- 领域事件是一种特殊的值对象
6、领域中的聚合
聚合概念:
- 将实体和值对象划分为聚合并围绕着聚合定义边界。
- 作为一个整体来定义聚合的属性和不变量,并把其执行责任赋予聚合根或指定的框架机制。
- 选择一个实体作为每个聚合的根,并仅允许外部对象持有对聚合根的引用。
聚合价值:提升对象系统的粒度,保证业务逻辑的完整性,减少错误发生的概率。
聚合生命周期一致性原则:聚合边界内的对象,和聚合根之间存在 “人身依附” 关系。聚合根消失,聚合内的其他元素都应该同时消失。
小聚合原则:在不破坏业务逻辑完整性的基础上,小聚合带来更大的灵活性。
标签:聚合,对象,模型,认知,业务,领域,设计 From: https://www.cnblogs.com/Andrew-Zhou/p/17029106.html