设计模式-代理模式

【应用场景】

当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。

【优势】

解耦合(减弱对象之间的耦合程度)

【应注意】

不稳定。

个人觉得在调用委托的时候容易出现程序崩溃,例如我声明了委托类:LCLChatDelegate.h 中的一个接收到信息的委托:

-(void)didReciveZiXun:(NSDictionary *)zixunDic;

实现委托方法的可能会在最近界面或者聊天界面,当有信息推送过来,Appdelegate调用委托的时候有时就会崩溃,有可能因为委托没置空,或者没判断是否有实现委托了,例如:判断respondsToSelector:@selector(didReciveZiXun:)

【敏捷原则】

开放-封闭原则(对于扩展是开放的,对于更改是封闭的)

【实例】

例1.tableview的 数据源delegate,通过和protocol的配合,完成委托诉求,例如:列表row个数delegate


例2.独立声明委托类,如下:


调用委托,如下:


实现委托,如下:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值