委托模式

#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方法。


你可能感兴趣的:(委托模式)