28、观察者模式与通知机制详解

观察者模式与通知机制详解

1. 提供者/订阅者模式

在提供者/订阅者模式中,选择器参数允许观察者在通知发送时选择要接收的消息。观察者可以将多个通知发送到单个方法,也可以将来自不同源的相同通知路由到不同方法。

1.1 观察者注册条件

名称和对象参数中的一个或两个可以为 nil。当省略时,它们充当通配符,接受符合其他条件的任何通知。以下是观察者可以指定的名称和对象值的组合:
| 名称 | 对象 | 通知 |
| ---- | ---- | ---- |
| @”name” | 对象 | 接收由对象发布的名为 @”name” 的通知 |
| @”name” | nil | 接收任何对象发布的名为 @”name” 的所有通知 |
| nil | 对象 | 接收对象发布的所有通知 |
| nil | nil | 接收发布到该通知中心的所有通知 |

最常见的形式是第二种,观察者将接收任何对象发布的具有给定名称的所有通知。观察者不必知道该对象是什么,也不需要该对象的引用即可注册,只需要知道通知的名称。

1.2 实际示例

以下是两个使用通知管理辅助窗口的实际示例:
- 持久检查器调色板窗口 :应用程序实现一个持久的“检查器”调色板窗口,该窗口始终显示有关前台文档窗口的信息。调色板窗口对象将注册以接收来自任何对象(nil)的 NSWindowDidBecomeMainNotification 通知。每当文档窗口变为活动状态时,它将收到通知并更新其显示。
- 特定窗口的检查器调色板窗口

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值