本文activiti源码版本为7.1.0.M5。
activiti遵循了DDD(领域驱动设计),采用CQRS的架构。
1.实体
首先说下实体、值对象的命名规则,可以参考COLA命名规范:
activiti类似,以Entity结尾的表示领域模型中的实体,但是activiti更加复杂一点,首先定义了一个Entity接口,每个具体的实体接口继承了这个接口,例如TaskEntity接口,每个实体接口又有一个实体实现类,例如TaskEntityImpl,其中包含了TaskEntityImpl这个实体的基本属性和基本操作,这里的基本操作指的应该是领域模型的动作,具体到Task上来说就是操作变量信息,操作候选人信息等。因此更准确的说领域模型的实体应该是以EntityImpl结尾。
2. CQRS
CQRS是领域驱动设计中的一种架构模式,即命令查询的责任分离Command Query Responsibility Segregation