[非凡程序员]协议,代理
2015-11-05 00:00
603 查看
摘要: 非凡程序员,感谢 黄杨超ios指导,总结:毕绒超学习笔记
#import <Foundation/Foundation.h>
@interface cureProtocol : NSObject
@end
#import "cureProtocol.h"
@implementation cureProtocol
@end
//治病协议---新协议最好遵守基协议
@protocol sickDeleget <NSObject>
//协议的治疗方法,这里没有指定默认是一定实现的
-(void)cure;
@end
#import <Foundation/Foundation.h>
#import "cureSickProtocol.h"
@interface Doctor : NSObject<sickDeleget>//医生遵守协议
@property ( nonatomic , strong ) NSString * name ;
@end
#import "Doctor.h"
@implementation Doctor
//这个方法是协议中的,协议的方法是谁遵守协议谁实现方法,这里没有接口
-(void)cure{
NSLog(@"医生开始治病~");
}
@end
#import <Foundation/Foundation.h>
#import "Doctor.h"
#import "Sick.h"
#import "Nurse.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//实例化病人对象
Sick *xiaoMing=[[Sick alloc]init];
xiaoMing.name=@"小明";
//实例化医生对象
Doctor *aHua=[[Doctor alloc]init];
aHua.name=@"医生";
//实例化护士对象
Nurse *xiaoBai=[[Nurse alloc]init];
xiaoBai.name=@"护士";
//设置病人委托对象
xiaoMing.doctorDeleget=xiaoBai;
// 生病治病
[xiaoMing ill];
}
return 0;
}
#import <Foundation/Foundation.h>
#import "cureSickProtocol.h"
@interface Nurse : NSObject<sickDeleget>
@property(nonatomic,strong)NSString *name;
@end
#import "Nurse.h"
@implementation Nurse
-(void)cure{
NSLog(@"护士开始治病~");
}
@end
#import <Foundation/Foundation.h>
#import "cureSickProtocol.h"
#import "Doctor.h"
@interface Sick : NSObject
@property( nonatomic , strong ) NSString *name;
//设置代理属性,这个属性为id类型便于其他遵守此协议的对象传入,使代码更灵活
@property( nonatomic , strong )id<sickDeleget> doctorDeleget;
//病人方法,生病去看病
-(void)ill;
@end
#import "Sick.h"
@implementation Sick
-(void)ill{
NSLog(@"%@说,医生我生病了啊。。。",_name);
// 病人通过代理委托医生看病
[self.doctorDeleget cure];
}
@end
#import <Foundation/Foundation.h>
@interface cureProtocol : NSObject
@end
#import "cureProtocol.h"
@implementation cureProtocol
@end
//治病协议---新协议最好遵守基协议
@protocol sickDeleget <NSObject>
//协议的治疗方法,这里没有指定默认是一定实现的
-(void)cure;
@end
#import <Foundation/Foundation.h>
#import "cureSickProtocol.h"
@interface Doctor : NSObject<sickDeleget>//医生遵守协议
@property ( nonatomic , strong ) NSString * name ;
@end
#import "Doctor.h"
@implementation Doctor
//这个方法是协议中的,协议的方法是谁遵守协议谁实现方法,这里没有接口
-(void)cure{
NSLog(@"医生开始治病~");
}
@end
#import <Foundation/Foundation.h>
#import "Doctor.h"
#import "Sick.h"
#import "Nurse.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//实例化病人对象
Sick *xiaoMing=[[Sick alloc]init];
xiaoMing.name=@"小明";
//实例化医生对象
Doctor *aHua=[[Doctor alloc]init];
aHua.name=@"医生";
//实例化护士对象
Nurse *xiaoBai=[[Nurse alloc]init];
xiaoBai.name=@"护士";
//设置病人委托对象
xiaoMing.doctorDeleget=xiaoBai;
// 生病治病
[xiaoMing ill];
}
return 0;
}
#import <Foundation/Foundation.h>
#import "cureSickProtocol.h"
@interface Nurse : NSObject<sickDeleget>
@property(nonatomic,strong)NSString *name;
@end
#import "Nurse.h"
@implementation Nurse
-(void)cure{
NSLog(@"护士开始治病~");
}
@end
#import <Foundation/Foundation.h>
#import "cureSickProtocol.h"
#import "Doctor.h"
@interface Sick : NSObject
@property( nonatomic , strong ) NSString *name;
//设置代理属性,这个属性为id类型便于其他遵守此协议的对象传入,使代码更灵活
@property( nonatomic , strong )id<sickDeleget> doctorDeleget;
//病人方法,生病去看病
-(void)ill;
@end
#import "Sick.h"
@implementation Sick
-(void)ill{
NSLog(@"%@说,医生我生病了啊。。。",_name);
// 病人通过代理委托医生看病
[self.doctorDeleget cure];
}
@end
相关文章推荐
- [非凡程序员]OC设计模式:代理模式以及协议
- 黑马程序员——JAVA基础----常见对象
- 黑马程序员——JAVA基础----多态、抽象类和接口
- Java 面试编程题
- 二叉树 面试题
- JAVA面试题
- 黑马程序员—Java基础—多线程1
- 黑马程序员——JAVA基础----面向对象
- 程序员的职业发展
- 黑马程序员----反射
- 【面试题】:兄弟字符串
- 黑马程序员——java中的关键字
- 知名公司的Java面试题
- ——黑马程序员——OC中self和super关键字的使用
- 黑马程序员—Java基础—IO5
- 黑马程序员—Java基础—IO4
- 程序员成长之路---“学习”与“面试笔试”总结篇之曲折的成长历程与求职历程
- 面试基础题
- 程序员学习交流的网站论坛
- 黑马程序员—Java基础—IO3