如何避免观察者模式中的无限循环?
我只有一个班很多实例。每个实例都是其他几个实例的观察者。同样,每个实例也可以通过几个其他实例观察到。
如何避免在观察者中调用update()的无限循环?
回答:
您正在寻找一种检测循环的图遍历算法。一种简单的方法(仅在单线程方案中有效)是保持全局/静态计数器,以使每个顶级update()
调用都获得唯一的标识符。然后,每个观察者都跟踪是否已经使用给定的标识符(ID)处理了更新,并且在这种情况下将其忽略。这意味着您的update
方法将必须使用带有特定更新ID号的参数进行扩展。
以上是 如何避免观察者模式中的无限循环? 的全部内容, 来源链接: utcz.com/qa/406362.html