扩展 - 代理 - 通知

2018-11-14  本文已影响5人  小行为

扩展

一般扩展做什么??

1、声明私有属性
2、声明私有方法
3、声明私有成员变量

扩展特点

编译时决议
只以声明的形式存在 多数在宿主类的 .m 文件
不能为系统添加扩展

代理 Delegate

特点:

代理是一种设计模式 传递方式 一对一

代理工作流程:

屏幕快照 2018-11-14 下午5.08.03.png

代理和委托方是以什么形式存在?

一般声明为 weak 以规避循环引用

通知 NSNotification

特点:

以观察者模式来实现的 用于跨层传递消息的机制
一对多

如何实现通知机制??

屏幕快照 2018-11-14 下午5.14.42.png

大致实现思路:
首先有一个通知中心系统类 里面维护一个map表 或者字典
key -> 对应监听名称
observer -> observer_list (观察者和 回调方法)

上一篇 下一篇

猜你喜欢

热点阅读