SwiftUI 数据流之在 iOS 中高效实现自定义通知中心NotificationCenter,Observer类的多种使用方式

如果您使用面向对象编程,那么您肯定熟悉(或至少已经听说过)Observer设计模式。

此模式由一个Observable类组成,该类发出附加events的自定义内容。data其他订阅它的类可能会在触发特定事件时收到通知。

此模式对 iOS 环境很重要,并且跨 API 使用,例如NSNotificationCenter,Combine和RxSwift. 该类observable 发出可能在内部或外部触发的事件。要收听更改,Observer类应该注册以接收通知。

好的,但是我们已经为此设置了委托和闭包

我理解依赖这样一个复杂的模式Observer可能是“用大炮杀死蜜蜂”。例如,您可以将更新从 aViewModel发送到ViewControllervia NotificationCenter。但这样做的核心优势是创建一个类,可以在不知道可能会通知谁的情况下将事件广播给对该事件感兴趣的任何其他类。

假设我们有一个ViewControllerwith a UIButton。单击此按钮时,我们希望通知应用程序的多个位置并通过显示横幅或其他内容来更新 UI。您也可以将网络事件通知多个类。如何处理并不重要,但这就像 Netflix - 我们广播有关新系列的通知,但不知道谁会/有多少人会收到它们。

这就是 的想法Observers。可能需要通知几个或数百万人有关单个班级的事件。

在这里插入图片描述

但这背后的魔力是什么?我们如何不observer延迟地通知许多人?这就是这篇文章的目的。我们将实现我们自己的习惯NotificationCenter来保存不同但相关的事件和观察者的集合。这样一来,每当我们NotificationCenter

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值