标签:
#import <Foundation/Foundation.h>
@protocol lifeDelegate <NSObject>
@required
- (void)sleep;
@end
@interface Mangaer : NSObject
{
id <lifeDelegate> delegate;
}
@property (nonatomic, strong) id <lifeDelegate> delegate;
- (void)life;
@end
#import "Mangaer.h"
@implementation Mangaer
@synthesize delegate;
- (void)life
{
[delegate sleep];
}
@end
#import <Foundation/Foundation.h>
#import "Mangaer.h"
@interface Worker : NSObject <lifeDelegate>
@end
#import "Worker.h"
@implementation Worker
- (void)sleep
{
NSLog(@"please sleep!");
}
@end
Main函数:
#import <Foundation/Foundation.h>
#import "Mangaer.h"
#import "Worker.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Mangaer *manager = [[Mangaer alloc] init];
Worker *worker = [[Worker alloc] init];
manager.delegate = worker;
[manager life];
}
return 0;
}
委托模式就是委托别人办事。
1,Manager的生活需要休息,所以他做了个lifedelegate协议,里面要求需要sleep
2,Manager需要先实现life这个方法,以至于实现[delegate sleep]
2,Manger 还定义lifedelegate协议了的代理人delegate
3,Worker接受了Manager的委托,实现sleep方法
4,主函数中声明Manager.delegate = worker。再实现他的life方法。
标签:
原文地址:http://my.oschina.net/u/2346786/blog/464788