如何为快速字典实现观察者模式

时间:2019-04-24 21:55:12

标签: swift observer-pattern

我有一个经理类,该类可以修改成员Dictionary<Id, MyObject>变量的状态。

是否可以移交对此Dictionary的引用并为所有更改设置观察者?我想避免手动实现观察者模式,即手动注册侦听器和手动触发通知的方法。

1 个答案:

答案 0 :(得分:0)

我建议您改变方法的方向。您以为这样的模型(例如字典)是权威来源,该模型就位更新,然后将通知已订阅的观察者该更改。

相反,我建议您翻转一下:您有一组可观察的数据(您的Internet API,传感器等),它们是您的原始数据源。这些可以由您的“数据管理器类”订阅,该类的工作是验证和过滤数据。该对象本身是可观察的,并且是模型的权威数据源。数据直接发送信号给订阅的观察者(没有中间人)。如果您需要保留这些数据,那么持久性系统只是可能的订户之一,以及多个可能的订户(GUI,CLI,集成测试等)