设计模式

一、代理设计模式

person监控NextAgent的票价,这样就可以person不用改,而更改代理

1、person.h 代理 - (void)buyTicket @property(nonatomic,retain) id<TicketDelegate> delegate;//拥有一个代理属性,就必须遵守TicketDelegate协议

person.m - (void)bugTicket {     double price = [_delegate ticketprice];     NSLog(@"通过代理的帮忙,票价%f",price);

}

2、TicketDelegate.h(协议) @protocol TicketDelegate<NSObject> - (void)bugTicket; @end

3、NextAgent.h @interface NextAgent : NSObject<TicketDelegate> //哪个要做代理都需要有这个协议 @end

NextAgent.m(代理实现) @implementation NextAgent - (double)ticketprice {  return 500; }

原文地址:https://www.cnblogs.com/zhongxuan/p/4848538.html