美文网首页
代理设计模式

代理设计模式

作者: Coder007 | 来源:发表于2016-05-04 17:47 被阅读38次

代理设计模式

  • 代理设计模式的总结:

    • 如果你想监听别人的一些行为,那么你要成为别人的代理
    • 如果你想告诉别人一些事情,那么就让别人成为你的代理
  • 代理设计模式的开发步骤

    • 需要写一份协议
      • 协议名字格式:控件名 + Delegate
    • 在协议里面声明一些代理方法
      • 一般都使用@optional,表示可选
      • 也可以写@@required,表示必须实现
    • 声明一个代理属性@property (nonatomic, weak) id<代理协议> delegate;
      • 一定要用weak,这里就不说为什么了
      • delegate这个有的时候是不能使用的,特别是控件自身有这个属性的时候,这个时候可以用别的名称,比如:xxxDelegate
    • 在内部发生某些行为时,调用代理对应的代理方法,通知代理内部发生什么事
    • 设置代理:xxx.delegate = yyy
    • yyy对象遵守协议,实现代理方法
    • 在需要执行代理方法的时候,调用对应的方法
@protocol YWLoadMoreFooterDelegate <NSObject>
@optional
- (void)loadMoreFooterDidClickLoadMoreButton:(YWLoadMoreFooter *)footer;
@required
- (void)loadMoreFooterDidClickHideButton:(YWLoadMoreFooter *)footer
@end
// 代理属性
@property (nonatomic, weak) id<YWLoadMoreFooterDelegate> delegate;

// 设置代理
footer.delegate = self;

// 触发代理方法
if ([self.delegate respondsToSelector:@selector(loadMoreFooterDidClickLoadMoreButton:)]) {
    [self.delegate loadMoreFooterDidClickLoadMoreButton:self];
}

相关文章

网友评论

      本文标题:代理设计模式

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