#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 的事情。
本文通过一个典型的母亲和保姆的示例,介绍了代理模式的基本概念及其实现方式。文章详细阐述了如何通过定义协议来规范代理人(保姆)的行为,并通过具体代码展示了如何在实际应用中运用代理模式。
178

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



