黑马程序员技术交流社区
标题: 黑马程序员——oc语言学习心得—— 代理模式 [打印本页]
作者: 任子杰 时间: 2015-10-31 15:21
标题: 黑马程序员——oc语言学习心得—— 代理模式
黑马程序员——oc语言学习心得—— 代理模式
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流------
A: 声明代理、声明代理方法、声明接受代理的对象、调用代理方法。
B: 接受代理、实现代理方法。
实现代理得实现共同的协议 对象找实现这个协议代理对象 代理找厂家实现其功能
共同的协议
- @protocol ComputerInterface <NSObject>
- //共同的协议
- -(void)shanchang;
- -(void)sheji;
- //-sale
- @end
复制代码 厂家实现协议中的方法 代理只负责销售
- #import <Foundation/Foundation.h>
- #import "ComputerInterface.h"
- //导入实现协议
- @interface IBM : NSObject<ComputerInterface>
- @end
- @implementation IBM
- -(void)shanchang{
- NSLog(@"IBM生产电脑");
- }
- -(void)sheji{
- NSLog(@"IBM设计电脑");
- }
- @end
复制代码
创建代理实例对象 创建厂家对象赋值给代理 买家找代理买东西
- int main(int argc, const char * argv[]) {
- @autoreleasepool {
-
- IBM *ibm=[[IBM alloc]init];
-
- daili *dl=[[daili alloc]initWithVector:ibm];
- [dl shanchang];
- [dl sheji];
- [dl sale];
- //代理华硕
- asus *as=[[asus alloc]init];
- daili *dl2=[[daili alloc]initWithVector:as];
- [dl2 shanchang];
- [dl2 sheji];
- [dl2 sale];
复制代码
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流------
作者: 18120184391 时间: 2015-11-1 06:36
遵守特定协议的B是A的实例变量;才能说B可以作为A的代理.
你这里面工厂遵守了协议,那么工厂才是代理啊. 工厂帮你的daili实现了协议里的行为或者作为监听daili行为的人.
daili的代码没找到,代理模式还需要被代理人在方法中发送消息给代理者才可以.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |