QHP_09cell代理设计模式

2016-04-23  本文已影响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个对象发生了什么事

上一篇下一篇

猜你喜欢

热点阅读