美文网首页
代理设计模式,和监听方法

代理设计模式,和监听方法

作者: 爱霉霉 | 来源:发表于2015-07-03 20:47 被阅读177次

代理的使用步骤

  • 定义一份代理协议
    • 协议名字的格式一般是:类名 + Delegate
      • 比如UITableViewDelegate
    • 代理方法细节
      • 一般都是@optional
      • 方法名一般都以类名开头
        • 比如- (void)scrollViewDidScroll:
      • 一般都需要将对象本身传出去
        • 比如tableView的方法都会把tableView本身传出去
    • 必须要遵守NSObject协议
      • 比如@protocol XMGWineCellDelegate <NSObject>
  • 声明一个代理属性
    • 代理的类型格式:id<协议> delegate
@property (nonatomic, weak) id<XMGWineCellDelegate> delegate;
  • 设置代理对象
xxx.delegate = yyy;
  • 代理对象遵守协议,实现协议里面相应的方法

  • 当控件内部发生了一些事情,就可以调用代理的代理方法通知代理

    • 如果代理方法是@optional,那么需要判断方法是否有实现
if ([self.delegate respondsToSelector:@selector(wineCellDidClickPlusButton:)]) {
    [self.delegate wineCellDidClickPlusButton:self];
}

iOS监听某些事件的方法

  • 通知(NSNotificationCenter\NSNotification)
    • 任何对象之间都可以传递消息
    • 使用范围
      • 1个对象可以发通知给N个对象
      • 1个对象可以接受N个对象发出的通知
    • 必须得保证通知的名字在发出和监听时是一致的
  • KVO
    • 仅仅是能监听对象属性的改变(灵活度不如通知和代理)
  • 代理
    • 使用范围
      • 1个对象只能设置一个代理(假设这个对象只有1个代理属性)
      • 1个对象能成为多个对象的代理
    • 通知规范
    • 建议使用代理多于通知

block取代代理

  • 在view中定义block属性
  • 先看控制器需要拿到view的什么值,然后再看view在什么地方可以提供这个值最合适,然后在此调用block,把值传出去给控制器
  • 控制器拿到值再做其他的事,从而取代代理
  • block一般定义在view中,可作为属性,可作为方法中的参数,一般是为了把view中才能拿到的值,传给别人去用。

相关文章

  • 代理设计模式,和监听方法

    代理的使用步骤 定义一份代理协议协议名字的格式一般是:类名 + Delegate比如UITableViewDele...

  • spring框架中的设计模式二

    在这篇文章中,介绍4种设计模式。结构型设计模式:代理和复合模式。行为型设计模式:策略和模板方法模式。 代理模式 面...

  • 动态代理

    动态代理和代理模式有些相似,都是对某个类中的某些方法进行监听,代理模式在这里不多说,下面概括一下动态代理,以下概括...

  • 代理设计模式

    代理设计模式 代理设计模式的总结:如果你想监听别人的一些行为,那么你要成为别人的代理如果你想告诉别人一些事情,那么...

  • 模板方法设计模式(Template Method)

    最易懂设计模式解析适配器设计模式Mybatis代理设计模式Mybatis多级代理 1. 认识模板方法模式 1.1 ...

  • 适配器设计模式(Adapter)

    最易懂设计模式解析模板方法设计模式Mybatis代理设计模式Mybatis多级代理 1. 认识适配器模式 1.1 ...

  • Mybatis代理设计模式(Proxy)与编程实现原理

    最易懂设计模式解析适配器设计模式模板方法设计模式Mybatis多级代理 1. 认识代理模式 1.1 模式定义 给某...

  • 代理模式 静态代理到动态代理

    代理模式这种设计模式是一种使用代理对象来执行目标对象的方法并在代理对象中增强目标对象方法的一种设计模式。代理对象代...

  • java 代理模式详解

    简介 代理是什么? 代理也称“委托”,分为静态代理和动态代理,代理模式也是常用的设计模式之一,具有方法增强、高扩展...

  • 代理模式设计

    [toc] 代理模式设计 用处 当我们需要监听某个控件的点击的时候,我们总希望可以相应的会调用某个方法,去实现我们...

网友评论

      本文标题:代理设计模式,和监听方法

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