首页 > 代码库 > 最精简的的代理设计模式-- 保姆看孩子
最精简的的代理设计模式-- 保姆看孩子
@protocol NursePtotocol <NSObject>
//保姆的协议方法
- (void)startToAmuseBaby;
@end
@implementation Women
- (void)startToAmuseBaby
{
NSLog(@"保姆哄孩子");
}
@end
@interface Baby : NSObject
{
id <NursePtotocol> delegate;
}
- (void)setDelegate:(id)newDelegate;
- (id)delegate;
- (void)crying;
@end
@implementation Baby
//设置访问方法
- (void)setDelegate:(id)newDelegate
{
delegate = newDelegate;//赋值代理
}
- (id)delegate
{
return delegate;
}
- (void)crying
{
NSLog(@"孩子哭了");
//2,(管理类) 使用协议方法
[self.delegate startToAmuseBaby];
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
Baby *baby = [[Baby alloc] init];
Women *women = [[Women alloc] init];
//调用setter方法,赋值代理:让women遵从nurse协议
[baby setDelegate:women];
[baby crying];
}
return 0;
}
最精简的的代理设计模式-- 保姆看孩子