代理的简单使用

来源:互联网 发布:java微服务框架有哪些 编辑:程序博客网 时间:2024/06/05 06:08
代理的简单使用


一、定义协议


//===============================================
//  buyDelegate.h
//  定义代理协议
//


#import <Foundation/Foundation.h>
@protocol buyDelegate <NSObject>


//返回电脑型号
-(NSString *)computerID;


//返回电脑价钱
-(double)computerPrice;


@end
//==============================================




二、代理实现协议中的方法


//==============================================
//  guide.h
//导购遵循代理协议


#import <Foundation/Foundation.h>
#import "buyDelegate.h"
@interface guide : NSObject<buyDelegate>


@end


//=============================================
//  guide.m
//导购实现代理协议中的某些方法
//
#import <Foundation/Foundation.h>
#import "guide.h"


@implementation guide
//返回电脑型号
-(NSString *)computerID
{
    //代理去执行,返回结果
    return @"lenovo B460";
}


//返回电脑价钱
-(double)computerPrice
{
    return 3500;
}


@end
//==============================================


三、对象去调用代理


//==============================================
//  consumer.h
//消费费者方法购买电脑,遵循代理协议
//定义消费者属性代理


#import <Foundation/Foundation.h>
#import "buyDelegate.h"
//consumer声明
@interface consumer : NSObject
//consumers属性的声明,consumers属性是代理对象
@property(nonatomic, weak)id<buyDelegate> delegate;
-(void)buyComputer;
@end
//=================================================


//  consumer.m
//消费者购买电脑的方法实现
//


#import "consumer.h"


@implementation consumer


//客户去买电脑
-(void)buyComputer
{
    //让导购(代理)去买电脑
    NSString *comId = [_delegate computerID];
    double price = [_delegate computerPrice];
    NSLog(@"电脑的型号是:%@,价钱是:%f", comId, price);
}
@end
//=======================================================


四、mian方法


//=======================================================
//  main.m
//代理的简单使用
//客户买电脑,找导购员代理


#import <Foundation/Foundation.h>
#import "consumer.h"
#import "guide.h"
int main()
{
    //消费者
    consumer *c = [[consumer alloc] init];
    //代理
    guide *g = [[guide alloc] init];
    
    //设置消费者的代理
    c.delegate = g;
    //消费者购买电脑
    [c buyComputer];
    return 0;
}
//==========================================================
0 0
原创粉丝点击