代理/通知/KVO 的区别

作者: iOS小孟和小梦 | 来源:发表于2016-04-17 01:15 被阅读347次

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

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

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

    如何选择?
    ◦   代理比通知规范,非常适合多人开发以及代码维护
    ◦   如果要通知多个对象,就用通知
    
    ◦   建议使用代理多于通知,能使用代理尽量使用代理
    ◦   当层级结构非常深,难以拿到对应对象时使用通知

    相关文章

      网友评论

        本文标题:代理/通知/KVO 的区别

        本文链接:https://www.haomeiwen.com/subject/mejolttx.html