目前项目中业务比较复杂,主要定位是一个众包的接单平台,复杂点如下
1.业务流程分支较多
2.业务状态较多,且业务状态转换也很频繁
为了业务语义的清晰及业务逻辑的解耦,目前在做的方向包括
- 使用状态机来进行状态管理
- 使用基于配置的责任链模式对业务流程进行编排,便于复用、流程清晰
问题:想在责任链的配置节点中包含状态机的状态转换,不知道大家有没有落地的场景,考虑到状态机需要设计为无状态,要不有并发问题,不知道有没有什么坑,另外项目中有些状态转换简单,是否使用这种模式过于繁琐
在你所描述的场景中,使用状态机来管理业务状态是一个不错的选择,可以提高业务语义的清晰性和可维护性。关于状态机的无状态设计,确实是为了避免并发问题,同时也可以方便进行状态迁移的测试和扩展。状态机的实现有多种方式,可以使用面向对象的方式,也可以使用函数式的方式来实现。
在责任链模式中包含状态机的状态转换是可以考虑的,可以将状态机的状态转换作为责任链模式的一个节点,以此来达到业务流程的编排。但是,这种方式的实现可能会增加一定的复杂度,需要仔细考虑状态机和责任链模式的交互。同时,对于简单的状态转换,可以考虑直接在业务逻辑中实现,避免过度的繁琐。
总之,对于复杂的业务流程,使用状态机和责任链模式来管理业务状态和流程是一种可行的方案,但需要根据具体场景进行评估和设计。在实现过程中,需要注意状态机的无状态设计,以及责任链模式和状态机之间的交互。
望采纳。