美文网首页
QHP_09cell代理设计模式

QHP_09cell代理设计模式

作者: 风信子的梦想成真 | 来源:发表于2016-04-23 23:17 被阅读6次

    代理模式的重要性:

    1.A对象监听B对象的一些行为(比如控制器监听了footer的行为),A对象成为B对象的代理(对象就要告诉A对象一些东西)

    2.A对象想告诉B对象一些事情,B对象要成为A对象的代理(比如UIScrollView告诉控制器什么时候滚动,是不是要让控制器成为它的代理)

    代理设计模式的总结:
    1.如果你想监听别人的行为,那么就要成为别人的代理

    2.如果你想告诉别人一些内部的事情,那么就让别人成为你的代理

    代理设计模式的开发步骤:

    1.拟一份协议,(协议的格式是控件+Delegate)在协议里声明一些代理方法(一般代理方法是@optional)

    2.声明一个代理属性

    最重要的一点是声明代理属性必须要用weak

    3.在内部发生某些行为时,调用代理对应的代理方法,通知代理内部发生什么事(比如内部的按钮被点了,调用代理被你点的按钮方法,通知代理按钮被你点了)

    标记部分如果代理实行了标记的那个方法,再去调用

    4.设置代理 xxx.delegate = yyy;

    5.yyy对象,遵守协议,实现代理方法;

    代理和通知的区别:

    代理:1个对象只能告诉另一个对象发生了什么事

    通知:1个对象可以告诉N个对象发生了什么事

    相关文章

      网友评论

          本文标题:QHP_09cell代理设计模式

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