IOS 应用架构

来源:互联网 发布:单片机交通灯设计报告 编辑:程序博客网 时间:2024/05/17 03:40

IOS 应用架构

总结之前的开发,自己业余开发工程,按照理解进行搭建:
- 层次划分
- 模块划分
- UI部分架构设计
- 中间层
- 网络层
- 缓存
- 持久化


层次划分

就是分层,这个网上很多,有分三层的,有分四层的,具体不去分析,说说自己的设计吧。
1: UI层,负责UI显示,事件响应处理

2: Service层,负责具体业务处理,响应UI请求,将网络,缓存,固化数据返回给UI,进行显示。

3:数据管理层,负责发送网络请求,缓存处理,持久化处理。


UI部分架构设计

UI部分按照传统的MVC模式, 使用现在很流行的MVVM架构。
关于UI的各种控件, github上有很多开源代码,是大家学习的好帮手。
目前开发产品时,也都是现学现卖。精通谈不上。
总结下来:
1 : 各模块间调用,使用中介者模式,实现全局调度,使模块间的切换,解偶。
2:使用UITableView 时, 可能会遇到显示各种个样的cell, 目前解决这个问题,用两种设计模式推荐, 责任链模式,策略模式。根据个人喜好选择。现在项目大家使用责任链模式。不过我个人喜欢 策略模式。

中间层

按照模块划分,每个模块提供一个service,UI需要的数据都是通过这个service获取。
获取数据时, 如果提供缓存的接口,直接返回缓存,如果不提高缓存,或者缓存过期,发送网络请求。
问题点:

  1. 回调方式:基本上是delegate与block 的选择。delegate好处在于之间的 为弱引用关系,不会影响上层的内存释放。block 使用时, 会引起循环引用问题,而去会出现跨层传递问题。但是还是选择了block,因为这种方式,写代码真的很方便,但是调试起来就不太方便了。
  2. service返回的数据,以什么形式返回,是完整的数据结构,或者是NSDictionary,这里使用开源的Mantle,进行数据映射,返回给UI完整的model,但是这个model为服务端返回的数据,有些数据UI可能不需要使用,这样给UI开发人员造成困扰。上面说的MVVM中,就有ViewModel这一层,可以解决底层model 到ViewModel的映射。
0 0
原创粉丝点击