知识卡片

服务驱动设计:业务服务→任务树→序列图脚本

普通读书笔记卡 · 1978.am

内容

服务驱动设计的起点是业务服务:将业务服务规约的基本流程转换为由动词短语组成的任务,通过向上归纳与向下分解获得由组合任务与原子任务组成的任务树(如”提名候选人”分解为”确定候选人是否参加过课程→获取培训对应课程/确定学习记录是否有该候选人”“如果未参加则提名候选人→获得票/提名/保存票状态”“发送提名通知→获取模板/组装内容/发送”)。结合任务分解与角色构造型得到序列图脚本,对应序列图。若应用服务承担了多个领域服务的协作职责、且需根据某返回结果决定执行流程,这实际属于领域逻辑,应在应用服务内部引入领域服务来封装(如引入NominationService)。发散:一个组合任务对应一个领域服务、一个原子任务对应一次职责履行——任务树因此不只是分析工具,而是直接映射到代码结构的设计骨架。

参考来源

- 位置:《解构领域驱动设计》第20章 20.3.4(源文件:_epub-src/OEBPS/033.xhtml) - 结论依据:原文以提名候选人演示任务树分解、序列图脚本、以及应用服务承担领域逻辑时引入领域服务。 - 原始内容:将业务服务规约的基本流程转换为由动词短语组成的任务,然后通过向上归纳和向下分解获得由组合任务与原子任务组成的任务树。