1. 模式理解
* 代理模式就是:[代理 调用协议的方法] ==> 间接达到某个家伙不想干或干不了的事情.
这个时候就可以将代理属性设为需求这一方.
指可以协助处理事物的对象.就是遵守协议的一方.他会将协议方法实现.这是他的能力.
说白了就是某件事别人不想干,或干不了,他能处理,就让他干了这件事.
/*-----------------------------协议--------------------------------*/
@protocol XiuGaiDaiMaProtocol <NSObject>
- (void)xiuGaiDaiMa; // 需要找一个能修改代码的人
@end
/*-----------------------------经理--------------------------------*/
@interface Manager : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, strong) id <XiuGaiDaiMaProtocol> delegate; // 经理需要个能修改代码的人
- (void)jianChaCode; // 检查代码
@end
@implementation Manager
- (void)jianChaCode {
NSLog(@"代码太烂,需要修改.."); // 检查代码发现太烂, 需要程序员修改
[self.delegate xiuGaiDaiMa]; // 检查代码发现太烂, 需要程序员修改
}
@end
/*-----------------------------程序员--------------------------------*/
@interface Programmer : NSObject <XiuGaiDaiMaProtocol>
@property (nonatomic, copy) NSString *name;
@end
@implementation Programmer
- (void)xiuGaiDaiMa { // 程序员的能力,修改代码
NSLog(@"程序员修改代码");
}
@end
/*------------------------------实现-------------------------------*/
int main(int argc, const char * argv[]) {
Manager *manager_Wang = [[Manager alloc] init];
Programmer *programmer_Li = [[Programmer alloc] init];
manager_Wang.delegate = programmer_Li;
[manager_Wang jianChaCode];