本申请涉及领域驱动设计,具体地涉及一种用于领域驱动战术设计的方法、装置及存储介质。
背景技术:
1、领域驱动设计指出领域层是这套模型的精髓,与面向数据开发模式相比,领域层模型能够更好的反映出业务本质问题,这一特点使其在大型复杂软件开发中优势明显,能够快速应对需求的变化和迭代。战术设计是领域驱动设计的实践环节,将实体、值对象、领域服务、领域事件等软件中模型(领域对象)映射到代码,同时使用聚合、工厂、资源库等模式来管理这些领域对象的生命周期,维护领域对象业务完整性和一致性,防止对象实现偏离领域驱动设计的轨道。战术设计作为领域驱动设计的基础,决定整套设计方案能否成功落地实现。
2、然而领域驱动战术设计仍然面临挑战,体现在以下几个方面:①战术建模过程中得到很多概念、事件、行为等元素,但是缺少具体的形式化表达将这些元素和整个业务流程绑定,导致模型创建不完全或者和实际业务有偏差。②领域模型侧重于业务而非技术,在技术实现的过程中需要一些技术模型来将业务模型关联管理起来,方便梳理业务模型关系、实现和维护。③领域对象的生命周期管理存在一定难度,领域对象的各个生命周期阶段都有一定规则,生命周期转换存在复杂性,难以封装维护。
3、现有技术中所采用的领域驱动战术设计的方法存在业务模型的构建存在偏差以及业务模型不便于管理和维护的问题。
技术实现思路
1、本申请实施例的目的是提供一种用于领域驱动战术设计的方法、装置及存储介质,用以解决现有技术中所采用的领域驱动战术设计的方法存在业务模型的构建存在偏差以及业务模型不便于管理和维护的问题。
2、为了实现上述目的,本申请第一方面提供一种用于领域驱动战术设计的方法,该方法包括:
3、通过目标业务的战略模式划分界限上下文;
4、确定界限上下文对应的业务状态流程图;
5、通过业务状态流程图构建领域模型和状态机模型;
6、根据领域模型和状态机模型得到目标业务对应的目标代码。
7、在本申请实施例中,确定界限上下文对应的业务状态流程图包括:
8、通过事件风暴确定目标业务中的多个事件;
9、确定每个事件对应的状态和行为;
10、根据每个事件以及每个事件对应的状态和行为绘制业务状态流程图。
11、在本申请实施例中,领域模型包括实体、值对象、领域事件和领域服务,通过业务状态流程图构建领域模型包括:
12、将目标业务中存在状态变更的对应建模为实体;
13、将目标业务中不涉及状态变更的对象建模为值对象;
14、将业务状态流程图中的事件建模为领域事件;
15、将业务状态流程图中的不属于实体或值对象自然职责的行为建模为领域服务。
16、在本申请实施例中,该方法还包括:
17、通过状态机模型对领域模型中实体的生命周期进行管理。
18、在本申请实施例中,通过业务状态流程图构建状态机模型包括:
19、定义状态机的基本功能;
20、根据状态机的基本功能结合业务状态流程图分别确定目标业务中每个实体的状态流转模型,以得到目标业务对应的状态机模型。
21、在本申请实施例中,定义状态机的基本功能包括:
22、定义状态机的属性集合
23、定义状态机的加载行为;
24、定义状态机的扭转行为;
25、定义状态机的事件发布行为。
26、在本申请实施例中,状态机的属性集合包括:
27、实体标识、事件、初态、次态和行为。
28、在本申请实施例中,状态机模型中任意实体的状态流转模型中包括多条属性数据,相邻两条属性数据中,上一条属性数据中的次态与下一条属性数据中的初态相同。
29、本申请第二方面提供一种用于领域驱动战术设计的装置,包括:
30、存储器,被配置成存储指令;以及
31、处理器,被配置成从存储器调用指令以及在执行指令时能够实现上述的用于领域驱动战术设计的方法。
32、本申请第三方面提供一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的用于领域驱动战术设计的方法。
33、通过上述技术方案,先通过目标业务的战略模式划分界限上下文;再确定界限上下文对应的业务状态流程图;接着通过业务状态流程图构建领域模型和状态机模型;最后根据领域模型和状态机模型得到目标业务对应的目标代码。本申请通过可配置的状态机模型,可以快速实现目标业务的领域驱动建模和落地,快速得到目标代码,并且可以通过可配置的状态机模型对领域模型进行管理,有利于提高模型构建的精确度以及便于后期维护。
34、本申请实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
1.一种用于领域驱动战术设计的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述确定所述界限上下文对应的业务状态流程图包括:
3.根据权利要求1所述的方法,其特征在于,所述领域模型包括实体、值对象、领域事件和领域服务,所述通过所述业务状态流程图构建领域模型包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述通过所述业务状态流程图构建状态机模型包括:
6.根据权利要求5所述的方法,其特征在于,所述定义状态机的基本功能包括:
7.根据权利要求6所述的方法,其特征在于,所述状态机的属性集合包括:
8.根据权利要求7所述的方法,其特征在于,所述状态机模型中任意实体的状态流转模型中包括多条属性数据,相邻两条属性数据中,上一条属性数据中的次态与下一条属性数据中的初态相同。
9.一种用于领域驱动战术设计的装置,其特征在于,包括:
10.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令用于使得机器执行根据权利要求1至8中任一项所述的用于领域驱动战术设计的方法。