假设我有模型Campaign
,它可以同时具有多个布尔状态:
drafted
:只是草稿
suspended
:活跃后暂停
pending
:等待批准
paused
:广告系列暂停,直到客户端恢复为止。
我想过使用状态机,我喜欢他们的DSL和他们提供的约定,但它只是一个并发状态,我不想失去以前的状态。例如,使用状态机(一个字符串字段统治它们):
如果我暂停了一个广告系列,那么客户端会在暂停时将其暂停,然后重新启动它,它会变为活动状态并且暂停状态已经消失。
任何人都知道如何处理这个问题?我喜欢StateMachines惯例,但我仍然希望并发状态能够持续存在。