gpt4 book ai didi

java - 观察者设计模式

转载 作者:搜寻专家 更新时间:2023-11-01 00:59:15 25 4
gpt4 key购买 nike

观察者设计模式中,主体通过调用每个观察者的update()操作来通知所有观察者。一种方法是

void notify() {
for (observer: observers) {
observer.update(this);
}
}

但这里的问题是每个观察者都是按顺序更新的,并且一个观察者的更新操作可能不会被调用,直到所有观察者都被更新。如果有一个观察者有一个 无限循环 用于更新,那么它之后的所有观察者将永远不会收到通知。

问题:

  1. 有办法解决这个问题吗?
  2. 如果是这样,什么是一个很好的例子?

最佳答案

问题是无限循环,而不是一个接一个的通知。

如果您希望事物同时更新,则需要在不同的线程上触发事物 - 在这种情况下,每个监听器都需要与其他监听器同步才能访问触发事件的对象。

提示一个无限循环阻止其他更新的发生就像提示获取锁然后进入无限循环阻止其他人访问锁定的对象 - 问题是无限循环,而不是锁管理器。

关于java - 观察者设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1862631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com