码迷,mamicode.com
首页 > 其他好文 > 详细

委托模式

时间:2015-06-09 22:05:41      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

#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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!