前言

  我们知道,在交易系统中,涉及很多单据操作,则会涉及很多属性的设置;更有子单据的属性的设置

  (介绍单据聚合跟,修改唯一单位,维护令牌和子订单规则一致性)

经验与实践

  我们知道,命令与查询分离,命令和函数分离都是比较好的实践,所以如果是单纯的改变单据状态,那么最好的就是抽象出一个命令对象出来,用它专门改变状态;

  设置命令,统一让聚合根执行,命令专门为改变状态而生,聚合根记录执行命令前和执行之后的状态对比,可以方便的进行维护和调试。

单据聚合跟

  单据聚合跟的首要设计是分离单据的DO和单据实体,其转换关系非常重要,由repository负责;

  • 聚合跟对外是一个黑盒子;

命令

  单据聚合跟设计大量的状态设置,把改变状态的操作全部封装为命令;

  • 因为命令模式的通用性,统一性,可以做到监控聚合跟状态变化;

多态与状态机

  如果有业务逻辑是根据单据状态变化而不同的,可以用状态做多态化

  1. 而如果处理这些逻辑的事件会引起状态变化的,直接封装为状态机机制;
  2. 聚合跟的状态机,要求可以和其他流程解耦合,也就是利用事件做可热拔插的状态机;
  3. 这个时候对于主流程而言聚合根不是黑盒子,状态机才是黑盒子;

 

分类:

技术点:

相关文章: