iOS架构初探
2017-03-27 00:00
176 查看
首先我们明确架构设计的目: 就是通过解耦让我们更好的管理和维护代码,下面通过一个简单的例子初步体验一下
传统方法
管理员和和员工相互引用,Employee.h @interface Employee : NSObject +(instancetype)shareInstance; - (void)doPrintJob; @end ``` ``` Employee.m #import "Employee.h" #import "Manager.h" @implementation Employee +(instancetype)shareInstance{ static Employee *e = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ e = [[Employee alloc]init]; }); return e; } - (void)doPrintJob{ NSLog(@"print"); [[Manager shareInstance] celebratePrintDone]; } @end ``` ``` Manager.h @interface Manager : NSObject +(instancetype)shareInstance; - (void)beginPrintTask; - (void)celebratePrintDone; @end ``` ``` Manager.m #import "Manager.h" #import "Employee.h" @implementation Manager +(instancetype)shareInstance{ static Manager *m = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ m = [[Manager alloc]init]; }); return m; } - (void)beginPrintTask{ [[Employee shareInstance] doPrintJob]; } - (void)celebratePrintDone{ NSLog(@"celebrate print done"); } ``` ###Delegate 管理员引用员工 Employee声明协议,和方法. 任务完成后通知Manager ``` Employee.h @protocol EmployeePrintDelegate <NSObject> - (void)printTaskDone; @end @interface Employee : NSObject @property (nonatomic, weak) id<EmployeePrintDelegate> delegate; @end ``` ``` - (void)doPrintJob{ NSLog(@"print");//判断代理是否实现方法 如果有再执行 if (_delegate && [_delegate respondsToSelector:@selector(printTaskDone)]) { [_delegate printTaskDone]; } ``` Manager 遵循协议,实现代理方法获取消息 ``` #import "Manager.h" #import "Employee.h" @interface Manager()<EmployeePrintDelegate> @end @implementation Manager +(instancetype)shareInstance{ static Manager *m = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ m = [[Manager alloc]init]; }); return m; } - (void)beginPrintTask{ [Employee shareInstance].delegate = self; [[Employee shareInstance] doPrintJob]; } -(void)printTaskDone{ [self celebratePrintDone]; } - (void)celebratePrintDone{ NSLog(@"celebrate print done"); } @end ``` > 下一篇讲究经典的MVC架构
相关文章推荐
- [置顶] iOS架构初探 (一)—— MVC与MVP
- iOS架构模式初探
- iOS 架构初探[笔记]
- 单一世界架构初探之数据抽象
- 单一世界架构初探
- 单一世界架构初探之边界冲突
- 单一世界架构初探之计算迁移
- JpetStore5.0代码分析及系统架构初探
- JpetStore5.0代码分析及系统架构初探
- 单一世界架构初探之碰撞检测
- 单一世界架构初探之性价曲线
- 行业管理架构初探
- 单一世界架构初探之角色视野
- 单一世界架构初探之可预测性
- 单一世界架构初探之世界粒度
- 单一世界架构初探之投影世界
- 在PEA上海做演讲主题:大型、高负载网站架构和应用初探
- 静煊架构,初探PStruts的Action(重发)
- 单一世界架构初探之时间之轴
- 单一世界架构初探之服务部署