友情链接网站,房地产手机端网站建设,电商网站怎样做,中国建设工程协会网站电话层级结构,自底向上 持久层(File,Realm,SQLite)网络层(相信每个公司都有自己的网络层吧)业务层(ViewModel)展示层(View,VC) 持久层 耦合到网络层 设计要点 持久模型的选择#xff0c;我这里选择了文件#xff0c;直接缓存了JSON.txt。并且维护一张表映射到文件…层级结构,自底向上 持久层(File,Realm,SQLite)网络层(相信每个公司都有自己的网络层吧)业务层(ViewModel)展示层(View,VC) 持久层 耦合到网络层 设计要点 持久模型的选择我这里选择了文件直接缓存了JSON.txt。并且维护一张表映射到文件实现快速获取文件超时删除等操作。持久层的timeout设置网络层访问到这里的时候如果超时立即抛弃缓存网络层 耦合到持久层 设计要点 网络层的设计是基于离散式的即一个API接口对于一个Class。实现接口复用有了为同一个公司的多个APP提供APIKit的可能。网络层的设计是基于数据流的。也就是说你订阅了这个接口以后这个接口出现刷新加载数据等所有的返回及时发送给所有订阅者。一份请求数据可以多处订阅。例如在首页加载了N个接口在详情页获取其中某个接口的返回数据这里你不需要知道那个接口是否加载完成直接订阅即可。接口实例是可reload可refresh可nexPage得具体基于业务实现是有缓存开关的是可adaptation的。这里可要求过来接收数据的类型实现JSONConvertable协议是可以统一catch一些errors的。业务层 业务层耦合网络层 设计要点 这里的业务层就抽象成一个若干个ViewModelViewModel维护各种数据流状态。部分数据是要提供给展示层的展示层和业务层相互订阅。展示层 展示层和业务层耦合 设计要点 View单纯的包含View。哈哈这里递归了。View也提供事件流以供和业务层进行绑定。例如这里的view里有一个button点击button提交数据。这个数据肯定在ViewModel里了。所有view提供一个buttonClick的信号ViewModel提供的UploadData的操作。两者绑定即可。ViewController主要在这里进行业务层ViewModel和视图View的绑定解绑。转载自 http://fengdeng.github.io/blog/2016/05/24/xiang-mu-jia-gou-xiao-jie-ios/转载于:https://www.cnblogs.com/Jenaral/p/5616145.html