您的位置:首页 > 其它

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就是一些代码的封装,然后回调的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MVVM