#import <Foundation/Foundation.h>
@protocol Job <NSObject>
-(void)takeEat;
-(void)takeSleep;
-(void)takePlay;
-(void)takeShower;
@end
我们再声明Nurse类 即代理的人:
#import <Foundation/Foundation.h>
#import "Job.h"
@interface Nurse : NSObject<Job>//实现该协议
@end
实现文件:
#import "Nurse.h"
@implementation Nurse
-(void)takeEat
{
}
-(void)takeSleep
{
}
-(void)takePlay
{
}
-(void)takeShower
{
}
-(void)dealloc
{
}
@end
再声明一个morther类:
#import <Foundation/Foundation.h>
#import "Job.h"
@class Nurse;
@interface Morther : NSObject
{
}
-(id)initWithName:(NSString *)_name delagat:(id<Job>)_delagete;
@property(nonatomic,copy)NSString *name;
-(void)delagateThings;// 被代理的事情
@end
//实现文件
#import "Morther.h"
#import "Nurse.h"
@implementation Morther
-(id)initWithName:(NSString *)_name delagat:(id)_delagete
{
}
@synthesize name;
-(void)dealloc
{
}
-(void)delagateThings
{
}
@end
看看 在 main 文件中是怎么实现的:
#import <Foundation/Foundation.h>
#import "Morther.h"
#import "Nurse.h"
#import "Job.h"
int main (int argc, const char * argv[])
{
}
代理中,需要记住的关键是在发出代理请求的类(A)中声明代理人(B)的实例变量,这样就可以保证A 能通过调用B中B代理的方法来完成B代理的事情,即自己代理给B 的事情。
本文详细解释了Objective-C中的代理模式概念,并通过一个具体的实例展示了如何使用代理模式来实现妈妈委托保姆照顾孩子的场景。介绍了代理模式的关键点、实例分析以及代码实现过程。
665

被折叠的 条评论
为什么被折叠?



