在我的应用程序中,我有一个场景,如果特定模块发生更改,则必须将其通知给其他几个模块。我认为观察者模式适合这里,通过将发生更改的模块保持为主题并将要通知的模块作为观察者。
但是按照观察者模式的原则,观察者是相互独立的。观察者之间不应该有任何联系。就我而言,尽管模块不同,但它们是相互依赖的。成功完成第一个模块的执行对于下一个要执行的模块很重要。此外,如果模块 x 发生故障,则必须恢复模块 1 对模块 x-1 所做的所有更改。也就是说,要么所有模块都必须成功执行,要么我们必须回滚到以前的状态。你可以把它想象成一个交易。然后我意识到我错了,观察者模式不是实现这一点的正确方法。
我有点想提出一个干净的设计,其中有一组模块需要在主题发生变化时进行处理,但在约束条件下,模块相互依赖。有人可以帮我解决这个问题以提出一个好的设计吗?