swift - 如何为 swift 字典实现观察者模式

标签 swift observer-pattern

我有一个管理器类,它修改成员的状态 Dictionary<Id, MyObject>变量。

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

最佳答案

我建议你改变你的接近方向。您认为您拥有一个权威来源的模型(例如字典),该模型会就地更新,然后将更改通知订阅的观察者。

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

关于swift - 如何为 swift 字典实现观察者模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55839118/

相关文章:

Swift 泛型初始化 : Non-nominal type 'T' does not support explicit initialization

ios - 当 Safari 不是使用 URL 方案的默认浏览器时,从 iOS 14 上的应用程序启动 Safari

java - 使用可观察对象或事件或接口(interface)传递值

java - 在 OOP 中添加/注册按钮监听器的样式(Java、Actionscript 等)

java - addObserver() 方法,观察者模式和对象变量生命周期/范围,Java

ios - SwiftUI : Picker does not update correctly when changing datasource

ios - 从大标题页转换到小标题页时出现导航间隙

swift - CGFloat 和 NSNumber 之间的转换,无需不必要地提升为 Double

C++ 和 Qt : observer pattern error

javascript - 无法使用订阅 Angular 结果