首页 > 代码库 > Objective-C:11_代理设计模式
Objective-C:11_代理设计模式
代理设计模式:
比如人要去看电影,需要买票(买票的过程就不管了)。这样我们可以找个代理去买票
1、首先定义一个协议
@protocol TicketDelegate <NSObject>
//返回票价- (double)ticketPrice;//还剩下多少张票- (int)leftTicketsNumber;
@end
2、代理遵守这个协议
@interface Agent : NSObject <TicketDelegate>
@end
3、在Person类中,声明@property需要遵守协议的变量,然后声明一个买电影票的方法
@interface Person : NSObject
@property (nonatomic,strong) id<TicketDelegate> delegate;//这里不要写死了是那个代理类,使用id//买电影票- (void)buyTicket;@end
4、Person类的实现
@implementation Person
- (void)buyTicket{double price = [_delegate ticketPrice];int number = [_delegate leftTicketsNumber];NSLog(@"通过代理的帮忙,票价=%f,还剩下%d张票",price,number);}@end
代理设计模式:
完成某件事,定义一个协议,只要类遵守这个协议,就可以完成这件事情。
当需要使用代理的时候,我们声明的时候使用id这个万能指针,不需要确定是哪一个类去完成
只需要将遵守协议的类的对象赋值给声明好的成员变量就可以了
Objective-C:11_代理设计模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。