首页 > 代码库 > 最精简的的代理设计模式-- 保姆看孩子

最精简的的代理设计模式-- 保姆看孩子

 

@protocol NursePtotocol <NSObject>

 //保姆的协议方法

- (void)startToAmuseBaby;

 @end

 

@implementation Women

 - (void)startToAmuseBaby

{

    NSLog(@"保姆哄孩子");

}

@end

 

@interface Baby : NSObject

{

    id <NursePtotocol> delegate;

}

- (void)setDelegate:(id)newDelegate;

- (id)delegate;

- (void)crying;

@end

 

 

@implementation Baby

 //设置访问方法

- (void)setDelegate:(id)newDelegate

{

    delegate = newDelegate;//赋值代理

}

- (id)delegate

{

    return delegate;

}

- (void)crying

{

    NSLog(@"孩子哭了");

    //2,(管理类) 使用协议方法

    [self.delegate startToAmuseBaby];

}

@end

 

int main(int argc, const char * argv[])

{

    @autoreleasepool {

        Baby *baby = [[Baby alloc] init];

        Women *women = [[Women alloc] init];

        //调用setter方法,赋值代理:让women遵从nurse协议

        [baby setDelegate:women];

        [baby crying];

            }

    return 0;

}

最精简的的代理设计模式-- 保姆看孩子