MVVM(block回调形式) 自我认识
2018-01-17 10:38
337 查看
一直以来用MVC,今天用了一下MVVM设计模式,至于MVVM是什么,其他技术大牛的博客,简书等都说的非常深刻,像我这样的虾兵蟹将就不啰嗦了哈,只想说一下自己用的过程和使用MVVM模式的心得。 首先我创建了要用MVVM模式的模块的文件夹,如图所示
个人感觉这样分层级更容易理解,ViewModel负责做三件事:
(1)封装业务逻辑
(2)封装网络处理
(3)封装数据缓存
在这里我用了‘封装’二字,下面我来详细的说一下我的整个过程,大家可能就理解我为什么用封装二字了。
一:创建了了类SCHMvvmViewController,是主控制器。在主控制器里面我创建了tableView,相信大家也很熟悉了。
现在开始进行数据请求,上面说过ViewModel负责封装数据,现在在ViewModel文件夹下创建继承于NSObject的类SCHMvvmViewModel。
二:在SCHMvvmViewModel里面进行数据处理,我用来测试的数据是微博的列表(微博开放的api:
https://api.weibo.com/2/statuses/public_timeline.json),
首先声明了一个方法,给主控制器调用,在这个方法的实现里面开始请求并处理数据,至于网络请求工具,用的是自己项目里面的工具。我用的MJExtension处理数据,模型是在model文件夹下创建的SCHMvvmModel。请求成功,数据处理完毕后,要把数据通过block回调给主控制器,声明两个block,成功回调,失败回调,及声明方法。
三:在这里我封装了一个继承于NSObject的类SCHMvvmClassModel,是存放上面SCHMvvmViewModel的回调的block以及回调方法,这样所有模块的MVVM的ViewModel都可以继承,共用一套回调方法。故上面的SCHMvvmViewModel修改继承自SCHMvvmClassModel。
四:现在回到主控制器,刷新tableView。
五:这样整个MVVM模式的block回调形式就完成啦。这样主控制器与MVC模式下的controller 轻便很多。而ViewModel就是一些代码的封装,然后回调的。
个人感觉这样分层级更容易理解,ViewModel负责做三件事:
(1)封装业务逻辑
(2)封装网络处理
(3)封装数据缓存
在这里我用了‘封装’二字,下面我来详细的说一下我的整个过程,大家可能就理解我为什么用封装二字了。
一:创建了了类SCHMvvmViewController,是主控制器。在主控制器里面我创建了tableView,相信大家也很熟悉了。
现在开始进行数据请求,上面说过ViewModel负责封装数据,现在在ViewModel文件夹下创建继承于NSObject的类SCHMvvmViewModel。
二:在SCHMvvmViewModel里面进行数据处理,我用来测试的数据是微博的列表(微博开放的api:
https://api.weibo.com/2/statuses/public_timeline.json),
首先声明了一个方法,给主控制器调用,在这个方法的实现里面开始请求并处理数据,至于网络请求工具,用的是自己项目里面的工具。我用的MJExtension处理数据,模型是在model文件夹下创建的SCHMvvmModel。请求成功,数据处理完毕后,要把数据通过block回调给主控制器,声明两个block,成功回调,失败回调,及声明方法。
三:在这里我封装了一个继承于NSObject的类SCHMvvmClassModel,是存放上面SCHMvvmViewModel的回调的block以及回调方法,这样所有模块的MVVM的ViewModel都可以继承,共用一套回调方法。故上面的SCHMvvmViewModel修改继承自SCHMvvmClassModel。
四:现在回到主控制器,刷新tableView。
五:这样整个MVVM模式的block回调形式就完成啦。这样主控制器与MVC模式下的controller 轻便很多。而ViewModel就是一些代码的封装,然后回调的。
相关文章推荐
- 自我认识-KVC KVO 例子
- 使用block处理回调数据
- Block回调和传值(干货)
- EBOOT通过bin文件形式读取、下载LOGO----韦伯篇之自我分析
- 认识自我是人生的高峰
- 简单的 TouchID demo 的使用 && UIlaterView block的封装 && UIAlertController使用.block的回调
- 刚刚弄明白,原来block是回调的
- iOS_JSON_XML_图片内存缓存_Block回调
- 免费下载 《敏捷个人-认识自我,管理自我 v0.8.pdf》
- 工厂模式的block回调(使用简单方便)
- 最近的几点收获和自我认识
- (转)敏捷个人,认识自我,管理自我 v0.5 读书有感
- 认识自我管理自我_Scrum方法_站立例会
- ios 给NSTimer添加Block回调版本创建方法
- 让敏捷落地,从“认识自我”开始
- 认识自我,才能与时间做朋友——读《把时间当作朋友》有感
- block 回调个人理解
- 正确认识使用UML中的类图——辨析类图的两种存在形式
- 如何利用block进行回调
- 推荐:每个人都需要成长,在线阅读《敏捷个人-认识自我,管理自我 V0.5.pdf》