协议和委托 之 开车

 协议就相当于是C++中的纯虚基类,它只能定义函数并且只能由其他类来实现。而委托则类似于Java接口,其实协议和委托之间并无必然联系,只是在Obj—C中常用协议来实现委托。
protocol-协议,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。

delegate-委托,顾名思义就是委托别人办事,就是当一件事情发生后,自己不处理,让别人来处理。

#import <Foundation/Foundation.h>
//开车协议
@protocol DriveCarProtocol <NSObject>

@required
//要遵循开车协议的司机去开车, 更具有开车的本领
- (void)driveCar;
@end

//司机类
@interface Driver : NSObject<DriveCarProtocol>

@end
//司机会开车
@implementation Driver

//drive car method
- (void)driveCar
{
    NSLog(@"drive car");
}

@end

//老板类
@interface Boos : NSObject
{
    //老板要雇佣一个人,这个人是司机
    id<DriveCarProtocol> _myDriver;
}
@property(nonatomic, retain) id<DriveCarProtocol> myDriver;

//老板让司机开车
- (void)startDriverCarAction;
@end

@implementation Boos
@synthesize myDriver = _myDriver;

- (void)startDriverCarAction
{
    NSLog(@"Boos need drive car");
    //让司机去开车
    [[self myDriver] driveCar];
}
@end

int main(int argc, const char * argv[])
{
    Boos *boos = [[Boos alloc] init];   //有个老板    
    Driver *driver = [[Driver alloc] init];	//有个司机 
    //开始行动
    NSLog(@"Action");
    [boos setMyDriver:driver];  	//老板雇佣司机 		           
	    
    [boos startDriverCarAction];	//老板让司机开车
    
    [boos release];   	//到了老板下车                      
    [driver release];	//司机走了
    
    return 0;
}

协议和委托 其实就是把自己的事让别人来帮我做。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值