代理设计模式

代理设计模式,也称“委托”,顾名思义就是委托别人去做事情

在代理模式中,一方称为委托方,另一方称为代理方。

委托方和代理方通过协议联系到一起。

当委托方想要让代理方做事情时只需向代理发送代理消息


代理的作用:

1)对象间传递事件 :孩子告诉妈妈饿了

2)对象间传递数值 :告诉妈妈饿了的同时告诉想吃什么

代理方法中使用参数

3)为自身的属性赋值 :孩子告诉妈妈饿了同时要得到妈妈做的食物

代理方法中使用返回值


代理设计模式的使用步骤

委托方:提出代理协议

@protocolAMViewDelegate<NSObject>@optional-(void)view:(AMView*)viewdetailInfoWithState:(BOOL)state;@end

2. 委托方:添加代理对象属性

@interfaceAMView:UIView@property(nonatomic,weak)id<AMAppViewDelegate>delegate;

3. 代理方:遵循代理协议

@interfaceViewController()<AMAppViewDelegate>

4.代理方:成为委托方的代理者

view.delegate=self;

5. 代理方:实现代理方法

-(void)view:(AMView*)viewdetailInfoWithState:(BOOL)state{//...}

6. 委托方:通过代理属性调用代理方法

-(IBAction)nameBtnClicked:(id)sender{if(self.delegate&&[self.delegaterespondsToSelector:@selector(view:detailInfoWithState:]){[self.delegateview:selfdetailInfoWithState:NO];}}