刚学了代理模式 但是还是不是很清楚
希望能够用些简单的例子解释一下 谢谢

解决方案 »

  1.   

    你说得是delegate?如果是,你可以简单理解为一个函数指针得回调;只不过这个回调比较面型对象化而已。
      

  2.   

    嗯 就是delegate 您说的对 您能举个实际例子说明一下吗 
    我还是不太明白
    谢谢
      

  3.   

    主要通过协议来实现。百度一下一大堆,
    http://leopard168.blog.163.com/blog/static/168471844201111411729597/
      

  4.   

    OBJC中的代理就是回调,学过symbian的人可以认为是观察者。
    学过C++的可以认为是纯虚类
    学过JAVA的可以认为是接口类
      

  5.   

    协议说白了就是一种契约。需要交互的双方遵守的一种约束。而这里提到的是“代理协议”概念,这应该是一种解决对象交互解藕的一种设计模式。比如如下场景:有两个对象A和B,A中一个方法需要调用B中一方法,我们通常会在A中添加B的指针应用,这样做没有问题,但是有可能我们在B的对象中还需要调用A的方法,如果还按这种设计,很可能会出现循环引用。
    其实对象在交互的过程无非承担二种角色,1.数据接收者,2.数据发送者。在“代理协议”这个模型中,数据发送者包含数据接收者的指针。
    @interface MyWidget:BaseWidget {
      id<BaseWidgetDelegate> delegate;
    }
    @property (assign) id <BaseWidgetDelegate> delegate;
    @end而数据接收者则需要实现协议
    @protocal BaseWidgetDelegate;
    @interface WidgetManager:NSObject<BaseWidgetDelegate>
       ....
    @end