107,Protocol在代理设计模式中应用
来源:互联网 发布:c语言输出水仙花数 编辑:程序博客网 时间:2024/06/06 12:58
StudentProtocol.h:
#import <Foundation/Foundation.h>
//只有具备找房子的代理,才能为学生找房子,所以,让代理遵守该协议
@protocol StudentProtocol <NSObject>
-(void)helpStudentFindHouse;
@end
Student.h:
#import <Foundation/Foundation.h>
#import "LoveHouse.h"
#import "StudentProtocol.h"
@interface Student : NSObject
//使用id接收不同的对象,这样就有很多的扩展性了
@property(nonatomic,strong)id<StudentProtocol> delegate;
-(void)findHouse;
@end
#import "Student.h"
@implementation Student
-(void)findHouse{
NSLog(@"学生找房子");
if ([self.delegaterespondsToSelector:@selector(helpStudentFindHouse)]) {
[self.delegatehelpStudentFindHouse];
}
}
@end
#import <Foundation/Foundation.h>
#import "StudentProtocol.h"
@interface SameCity : NSObject <StudentProtocol>
@end
SameCity.m:
#import "SameCity.h"
@implementation SameCity
-(void)helpStudentFindHouse{
NSLog(@"SameCity帮学生找房子!");
}
@end
#import <Foundation/Foundation.h>
#import "StudentProtocol.h"
@interface LoveHouse : NSObject <StudentProtocol>
-(void)helpStudentFindHouse;
@end
LoveHouse.m:
#import "LoveHouse.h"
@implementation LoveHouse
-(void)helpStudentFindHouse{
NSLog(@"LoveHouse帮学生找房子!");
}
@end
main:
#import <Foundation/Foundation.h>
#import "Student.h"
#import "LoveHouse.h"
#import "SameCity.h"
/*
使用代理设计模式,帮学生找房子
*/
int main(int argc,const char * argv[]) {
Student *student = [Studentnew];
LoveHouse *loveHouse = [LoveHousenew];
student.delegate = loveHouse;
[student findHouse];
NSLog(@"------------");
//代理人改为【同城】帮忙找房
SameCity *sameCity = [SameCitynew];
student.delegate = sameCity;
[student findHouse];
return 0;
}
//2015-12-19 11:53:43.470 2,代理设计模式[2058:80563]学生找房子
//2015-12-19 11:53:43.471 2,代理设计模式[2058:80563] LoveHouse帮学生找房子!
//2015-12-19 11:53:43.471 2,代理设计模式[2058:80563] ------------
//2015-12-19 11:53:43.471 2,代理设计模式[2058:80563]学生找房子
//2015-12-19 11:53:43.471 2,代理设计模式[2058:80563] SameCity帮学生找房子!
//Program ended with exit code: 0
main:
- 107,Protocol在代理设计模式中应用
- protocol代理设计模式
- protocol的基本使用与代理设计模式的应用
- OC---protocol代理设计模式
- protocol 代理设计模式引入
- protocol 代理设计模式概念
- 代理设计模式在页面中的应用
- protocol及代理模式应用及理解
- ARC,block,protocol,代理设计模式
- @protocol(@required、@optional)、代理设计模式
- 实例讲解如何在iOS应用开发中使用设计模式中的代理模式
- 设计模式在游戏中的应用--代理模式(四)
- 代理模式@protocol
- @protocol 代理模式总结
- @protocol 代理模式总结
- ObjectC语言基础1—block、protocol、代理设计模式
- 学习笔记:OC的protocol协议及代理设计模式
- OC语法--协议protocol,代理设计模式概念
- project professional 2010重新输入密钥
- xcode7真机调试问题
- 每日一篇:特殊加法(简单应用)
- Linux下Hadoop集群的搭建(1)—重新编译Hadoop
- 10019---CSS Grouping Selectors(分组和嵌套)
- 107,Protocol在代理设计模式中应用
- [leetcode] 234. Palindrome Linked List 解题报告
- java lock
- Single Number I II III
- 字符间的相互转化
- hadoop 2.4.1 伪分布部署
- dequeueReusableCellWithIdentifier: forIndexPath: 获取cell
- Qt之Q_OBJECT 宏定义
- objective-C 枚举型和BOOL型