第1步:梳理领域概念及流程
- 消化知识,梳理领域概念/流程 ,提炼每个“名词”背后的本质。
- 对“专业术语”进行名词解释,精确描述出每个领域概念的涵义以及包含的主要信息
- 梳理出核心业务流程的参与方、步骤及业务规则
- 分析应用程序功能,识别出主要的应用层的功能
第2步:分析领域并划分子域
- 分析领域模型,识别出实体和值对象
- 对模型进行模块划分
- 按照高内聚、低耦合的原则,把领域划分为多个子域
- 明确子域之间的界限
- 确认子域之间的关系
3步:每个子域里面找“聚合根”
- 在每个子域里面有一堆 “概念”,平铺开,平等对待每个“概念“, 这一堆”琐碎的概念“里面,找几个”老大“出来,也就是聚合根。每个老大带几个小弟。
- 进一步分析领域模型,识别出哪些是实体,哪些是值对象,哪些是领域服务;
- 分析关联,通过对业务的更深入分析以及各种软件设计原则及性能方面的权衡,明确关联的方向或者去掉一些不需要的关联;
- 为聚合根配备仓储,一般情况下是为一个聚合分配一个仓储,此时只要设计好仓储的接口即可;
4步:聚合根之间引入“领域服务”
- 分析领域服务,协调多个领域对象之间的行为
- 每个子域里面,有了几个老大。老大与老大之间,如何互相协作呢,搞一个”协调者“,由它统一协调多个老大。这个“协调者”,就是领域服务。
5步:“领域服务”之间/ “子域”之间引入“领域事件”
- “领域服务”之间/ “子域”之间引入“领域事件”
- “领域服务”和“领域服务”之间就可以引入“领域事件”,一个流程做完了,发一个事件出去,另一个接收到事件之后,开始下一个流程
第6步:重构模型
- 走查场景,确定我们设计的领域模型能够有效地解决业务需求;
- 考虑如何创建领域实体或值对象,是通过工厂还是直接通过构造函数;
- 聚合设计的是否正确?考虑模型的性能怎样
- 并在实践中检验模型的合理性,倒推模型中不足的地方并重构
网友评论