首页 > 其他 > 详细

委托模式

时间:2015-06-09 22:05:33      阅读:264      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!