代理/通知/KVO 的区别


通知 NSNotification、通知中心 NSNotificationCenter
    ◦   任何对象之间都可以传递消息(一般在层级结构比较深又需要传值的情况)
  • 使用范围
    ▪ 1个对象可以发通知给多个对象
    ▪ 1个对象可以接受多个对象发出的通知
    ◦ 要求:必须得保证通知的名字在发出和监听时是一致的

KVO
    ◦   仅仅是能监听对象属性的改变(灵活度不如通知和代理)

代理模式
  • 使用范围
    ▪ 1个对象只能设置一个代理(假设这个对象只有1个代理属性)
    ▪ 1个对象能成为多个对象的代理

如何选择?
◦   代理比通知规范,非常适合多人开发以及代码维护
◦   如果要通知多个对象,就用通知

◦   建议使用代理多于通知,能使用代理尽量使用代理
◦   当层级结构非常深,难以拿到对应对象时使用通知
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容