当阅读观察者模式的文章时,我发现在观察者模式的责任中列出了以下观点:
观察者对象是完全独立的,它们不知道其他观察者的存在。因此,在通知所有观察者之前,观察者对象可以更改主题的状态(在更新方法中)。这可能导致状态不一致,并且状态更改通知将丢失。
1.为什么观察者会更改主题?难道观察者不应该在主题发生变化时被通知,而不是自行更改主题吗?
2.如果可能,请通过一个例子让我知道具体情况,同时请指明为什么主题不能限制任何观察者在通知所有观察者之前更改主题?
观察者对象是完全独立的,它们不知道其他观察者的存在。因此,在通知所有观察者之前,观察者对象可以更改主题的状态(在更新方法中)。这可能导致状态不一致,并且状态更改通知将丢失。
1.为什么观察者会更改主题?难道观察者不应该在主题发生变化时被通知,而不是自行更改主题吗?
2.如果可能,请通过一个例子让我知道具体情况,同时请指明为什么主题不能限制任何观察者在通知所有观察者之前更改主题?