您的位置:首页 > 其它

代理模式 之案例

2015-10-01 12:03 330 查看
案例 去北京….

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;
}


效果:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: