代理delegate & 通知 NSNotification
2018-12-18 本文已影响0人
滨滨_57b5
代理
什么是代理?
- 代理是一种设计模式,即代理模式
- iOS中以
@protocol
形式来体现代理的 - 代理的传递方式是一对一的
代理的工作流程是怎样的?
- 首先代理设计3个方面,即协议、代理方、委托方
- 首先委托方要求代理方需要实现的接口,都写在协议中(
协议中可以定义属性和方法
) - 代理方遵循协议,实现协议的方法
通知
通知的特点
- 通知是使用
观察者模式
来实现的用于跨层传递消息的机制 - 通知的传递方式是一对多的
代理和通知的区别
- 从设计模式层面说,代理是代理模式实现,通知是观察者模式实现
- 从传递方式层面说,代理是一对一的,通知是一对多的
通知是如何实现的?
- 在NSNotificationCenter通知中心类中,可能有一个字典Map表
- 字典中,key是通知的名字,value就是添加的观察者数组
- 在观察者列表中会有相关的通知的回调方法等信息