承前:大型系统的支撑,应用系统开发思想的变迁,DDD实践切入点(一),DDD实践切入点(二)
上回已经分完了上下文,其中很明显流程部分使用工作流引擎就差不多了,所以需要重点关注的工作就是申请单管理的上下文。到现在差不多可以开始结合具体情况和目标来设计申请单的模型了。
这个模型需要满足的公司内各种业务流程的审批,大概如下图(不完全),每个节点代表一个审批流程,每种审批流程申请单都不同。
经过分析抽象,建立了一个抽象的申请单模型,将申请单中最基本的概念识别出来,分离到不同的类、抽象类或接口中。使模型能表达出重要组件之间的大部分交互。这就是前一篇提到过的抽象核心模式,可以把完整的抽象模型放到它自己的模块中,详细的实现类则留在由子领域定义的模块中。结合之前提到过的可插入式组件框架模式就可以得到满足业务的模型,下面是抽象核心和待签流程的模型示例。
抽象核心
待签申请单模型
由于模型中只需要维护数据的一致性就可以了,不需要太多的职责,这里就只用类图表示下,意思意思,模型就算完成了。