objective-c中的代理模式哪位能具体解释一上

网友分享于:2015-09-23 16:51 发表在 Iphone
objective-c中的代理模式哪位大虾能具体解释一下
刚学了代理模式 但是还是不是很清楚
希望能够用些简单的例子解释一下 谢谢

------解决方案--------------------
你说得是delegate?如果是,你可以简单理解为一个函数指针得回调;只不过这个回调比较面型对象化而已。
------解决方案--------------------
主要通过协议来实现。

百度一下一大堆,
http://leopard168.blog.163.com/blog/static/168471844201111411729597/
------解决方案--------------------
OBJC中的代理就是回调,学过symbian的人可以认为是观察者。
学过C++的可以认为是纯虚类
学过JAVA的可以认为是接口类
------解决方案--------------------
协议说白了就是一种契约。需要交互的双方遵守的一种约束。而这里提到的是“代理协议”概念,这应该是一种解决对象交互解藕的一种设计模式。比如如下场景:有两个对象A和B,A中一个方法需要调用B中一方法,我们通常会在A中添加B的指针应用,这样做没有问题,但是有可能我们在B的对象中还需要调用A的方法,如果还按这种设计,很可能会出现循环引用。
其实对象在交互的过程无非承担二种角色,1.数据接收者,2.数据发送者。在“代理协议”这个模型中,数据发送者包含数据接收者的指针。
@interface MyWidget:BaseWidget {
  id delegate;
}
@property (assign) id  delegate;
@end

而数据接收者则需要实现协议
@protocal BaseWidgetDelegate;
@interface WidgetManager:NSObject
   ....
@end
推荐分类: 移动开发 Android Iphone Windows Mobile Symbian BlackBerry QT开发 Brew MeeGo 移动平台 移动软件开发 电信IT应用开发 移动应用
推荐标签: php websocket input navicat finereport
相关文章
最新发表
热门推荐