观察者模式:同一实例的多个注册的情况

问题描述 投票:1回答:1

我正在研究观察者,一种设计模式。

可观察对象包含观察者列表。列表可以接受多余的观察者实例。因此,我们可以使用哈希集而不是列表来限制这种冗余。

我的问题是,如果我们允许同一观察者实例的冗余注册,是否有任何示例表明该观察者被多次注册?为什么同一观察者多次注册到同一可观察者?

oop design-patterns observable observer-pattern observers
1个回答
1
投票

一个可观察的对象可能会产生几种不同类型的事件通知。一个观察者可能有兴趣注册许多这些通知。显然,您可以采用不同的方式设计此方案;但是一种方法是将所有注册信息保存在一个列表中。

GoF确实在第296页提到过,

由观察者处理或忽略通知。

这意味着观察者需要意识到任何可能的冗余并做出适当的反应。

© www.soinside.com 2019 - 2024. All rights reserved.