在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
代理设计模式小实例协议的应用场景之一:代理模式 需求:
UML类图:类图关系分析:
代码使用代理需要注意的地方
接下来进入实例代码阶段:Student.h代码: 1 #import <Foundation/Foundation.h> 2 #import "StudentFindHouse.h" 3 @class LinkHouse; 4 5 @interface Student : NSObject 6 7 @property (nonatomic,strong)id<StudentFindHouse> delegate; 8 9 -(void)findHouse; 10 11 @end Student.m代码: 1 #import "Student.h" 2 #import "LinkHouse.h" 3 4 @implementation Student 5 6 -(void)findHouse{ 7 if ([self.delegate respondsToSelector:@selector(findHouse)]) { 8 [self.delegate findHouse]; 9 } 10 } 11 12 @end 然后写出Student的类的协议,StudentFindHouse.h: 1 #import <Foundation/Foundation.h> 2 3 @protocol StudentFindHouse <NSObject> 4 5 -(void)findHouse; 6 7 @end LinkHouse.h代码: 1 #import <Foundation/Foundation.h> 2 3 #import "StudentFindHouse.h" 4 5 @interface LinkHouse : NSObject <StudentFindHouse> 6 7 -(void)findHouse; 8 9 @end LinkHouse.m代码: 1 #import "LinkHouse.h" 2 3 @implementation LinkHouse 4 5 -(void)findHouse{ 6 NSLog(@"%s 帮student找房子。",__FUNCTION__); 7 } 8 9 @end main.m代码以及然后运行的结果: |
请发表评论