objective c 协议  代理

1.可以代替继承方法2 把代码放多个文件,便于多人协助

2.

// 延展是私有的  在main中  不提示出现  可以输出   别人看不到的  自己可以看到

@interface Student ()   //可以是空括号  就是必须实现 延展中的方法   如果有可以不实现

- (void)aas;

@end


3.协议定义 应该实现什么  不关心具体怎么实现,oc协议@protocol 声明一组方法列表


4 协议的特点:

1..协议相当于确认类的父类       

2.可以规范类的行为

3.利于系统设计

4.利用团队开发等

5.是可选语法,并不是一定要使用协议


5.@required 必须实现的

  @optional 可选实现的



6.代理是协议的一种具体应用,例如:卖房子去找中介  中介帮忙卖 中介就是代理



Computer    .h文件

#import <Foundation/Foundation.h>

@protocol USB <NSObject>

- (void)usb1;

- (void)usb2;

@end


@interface Computer : NSObject

@property (nonatomic,assign) id<USB>deleaget;

- (void)look;


@end



Computer    .m文件

#import "Computer.h"


@implementation Computer

@synthesize deleaget=_deleaget;


- (void)look

{

    [self.deleaget usb1];

    [self.deleaget usb2];

}


@end


U_panA    .h 文件


#import <Foundation/Foundation.h>

#import "Computer.h"

@interface U_panA : NSObject<USB>

@end

U_panA    .m 文件


#import "U_panA.h"


@implementation U_panA

- (void)usb1

{

    NSLog(@"USB1.0的速度慢");

}

- (void)usb2

{

    NSLog(@"USB2.0的速度快");

}


@end


U_panB    .h 文件


#import <Foundation/Foundation.h>

#import "Computer.h"

@interface U_panB : NSObject<USB>


@end


U_panB    .m 文件


#import "U_panB.h"


@implementation U_panB



- (void)usb1

{

    NSLog(@"USB3.0 存储速度快");

}

- (void)usb2

{

    NSLog(@"USB4.0 保存速度快");

}


@end



main 

#import <Foundation/Foundation.h>

#import "NSString+NSSleimu.h"

#import "NSMutableArray+NSdaoXu.h"

#import "Computer.h"

#import "U_panA.h"

#import "U_panB.h"

int main (int argc, const char * argv[])

{


    @autoreleasepool {

        Computer * com=[[Computer alloc]init];

        U_panA * ua=[[U_panA alloc]init];

        U_panB * ub=[[U_panB alloc]init];

        com.deleaget=ub;

        [com look];

        NSLog(@"*****************");

        com.deleaget=ua;

        [com look];


[ua release];

        [com release];

        [ub release];

    }

    return 0;

}


 

2012-08-07 15:55:21.302 Oc_ds[665:707] USB3.0 存储速度快

2012-08-07 15:55:21.313 Oc_ds[665:707] USB4.0 保存速度快

2012-08-07 15:55:21.314 Oc_ds[665:707] *****************

2012-08-07 15:55:21.314 Oc_ds[665:707] USB1.0的速度慢

2012-08-07 15:55:21.315 Oc_ds[665:707] USB2.0的速度快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值