代理模式 之案例

来源:互联网 发布:我的世界pe联机枪械js 编辑:程序博客网 时间:2024/04/29 09:30

案例 去北京….


Person.h

#import <Foundation/Foundation.h>#import "ZaiRenProtocol.h"@interface Person : NSObject@property(nonatomic,copy)NSString *name;@property(nonatomic,strong)id<ZaiRenProtocol> trafficTool;- (void)goToBeiJing;@end

Person.m

#import "Person.h"@implementation Person- (void)goToBeiJing{    NSLog(@"走喽");    [self.trafficTool zaiRen];}@end

Car.h

#import <Foundation/Foundation.h>#import "ZaiRenProtocol.h"@interface Car : NSObject <ZaiRenProtocol>@end

Car.m

#import "Car.h"@implementation Car- (void)zaiRen{    NSLog(@"小汽车晃晃悠悠的前进了");}@end

Horse.h

#import <Foundation/Foundation.h>#import "ZaiRenProtocol.h"@interface Horse : NSObject <ZaiRenProtocol>@end

Horse.m

#import "Horse.h"@implementation Horse- (void)zaiRen{    NSLog(@"不捉急,很快就到");}@end

ZaiRenProtocol.h

#import <Foundation/Foundation.h>@protocol ZaiRenProtocol <NSObject>- (void)zaiRen;@end

main.m

#import <Foundation/Foundation.h>#import "Person.h"#import "Car.h"#import "Horse.h"int main(int argc, const char * argv[]){    Horse *horse = [Horse new];    Car *car = [Car new];    Person *p1 = [Person new];    p1.trafficTool = car;    [p1 goToBeiJing];    p1.trafficTool = horse;    [p1 goToBeiJing];    return 0;}

效果:代理模式

0 0
原创粉丝点击