【发布时间】:2014-06-01 22:01:00
【问题描述】:
我正在设计一个模拟组织中文档流的系统。为简单起见,我们假设流程具有以下状态:
- 已打开
- 已评估
- 拒绝
- 接受
有时需要一些外部资源才能继续。因此,如果资源不可用,则应暂停整个流程。我想还有另一个(不知何故)具有两种状态的并行状态机:
- 进行中
- 暂停
我认为我可以解决这个问题的方法是在第一个状态机的每次转换中检查第二个状态机的状态作为保护条件。 但我想知道是否有解决此类问题的通用方法或模式?
顺便说一句,我想使用 Stateless 或 bbv Common(Appccelerate) 库来实现这个状态机。
【问题讨论】:
-
考虑一个检查布尔值的守卫。该布尔值具有有限状态,可以假设由其自己的状态机驱动。因此,查询其他状态机的状态是可以接受的。不知道 Stateless 是否支持它!
-
是的,Stateless 支持守卫,所以我可以按照你说的来实现它。
标签: c# state-machine