代理的简单使用
来源:互联网 发布: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;
}
//==========================================================
一、定义协议
//===============================================
// 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
- 代理的简单使用
- 简单的delegate代理使用
- java动态代理与cglib代理的简单使用
- 代理模式以及多线程的简单使用
- 通知,代理,KVO的简单使用
- MyBatis的Mapper代理开发方式的简单使用
- CInternetSession的简单使用(代理,超时,无缓存,下文件)
- Linux里使用SSH代理fanqiang最简单的方法!
- 使用Nginx反向代理来实现简单的负载均衡
- 简单动态代理实例(使用jdk的proxy)
- extjs中的数据代理proxy的简单使用
- 使用Nginx反向代理来实现简单的负载均衡
- Android SDK下载速度慢的解决方法(简单使用代理)
- 使用Nginx反向代理来实现简单的负载均衡
- Swift闭包和代理的简单使用
- JDK的动态代理-面向切面编程简单使用
- Android SDK下载速度慢的解决方法(简单使用代理)
- 代理池使用,python的简单队列实现
- 使用Eclipse的maven构建一个web项目
- PHP生成条形码barcode
- spring mvc拦截器和<mvc:annotation-driven />的详解
- springMVC 学习(什么是依赖注入)
- Cocos2d-x 环境搭建和项目创建
- 代理的简单使用
- FinalHttp 使用教程
- 我不知道的策略模式
- 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const p
- 栈帧
- 欢迎使用CSDN-markdown编辑器
- 【ViewPager的学习】二、添加图片描述及指示点动态改变
- jenkins服务器部署(二)——任务构建
- CodeSmith:特殊字符如何包含在模板