我见过一些观察者模式的例子.
为什么在某些情况下,Observer界面中的update方法包含对所观察对象的引用?
观察者不知道它正在观察什么对象吗?
请举例说明.
最佳答案
根据具体问题,它可能引用或可能不引用主题.
主题可能仅调用update()函数,并仅在Observer中设置一些值,因此Observer不需要引用.或者,它可以通知观察者发生了更改,观察者将通过其拥有的引用与主题联系并获取新值.
如果观察者需要将某些情况通知主题,则也可以使用在实现中保存引用.
我见过一些观察者模式的例子.
为什么在某些情况下,Observer界面中的update方法包含对所观察对象的引用?
观察者不知道它正在观察什么对象吗?
请举例说明.
最佳答案
根据具体问题,它可能引用或可能不引用主题.
主题可能仅调用update()函数,并仅在Observer中设置一些值,因此Observer不需要引用.或者,它可以通知观察者发生了更改,观察者将通过其拥有的引用与主题联系并获取新值.
如果观察者需要将某些情况通知主题,则也可以使用在实现中保存引用.