标签:
#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