MVVM结构分析

作者: 码动人生 | 来源:发表于2016-07-14 15:00 被阅读225次

    大家比较熟悉的设计模式是MVC(模型-视图-控制器)。最近MVVM的设计模式也开始被广泛的使用,今天就用一个小Demo来简单体验一下MVVM。

    MVVM是微软提出的一种新型的结构模式。MVVM是Model-View-ViewModel的简写。与传统的MVC类比 ViewModel替换了C的位置。这种设计的模式使得控制器的代码繁琐程度降到很低,我们通过代码来看一下这种这结构的使用。

    我们在控制器上显示一个天气状况的View.这个View使用xib来创建。

    在控制器上显示一个 城市天气的View

    1.准备独立的View

    关联xib的View类 xib的描述样式

    2.独立的模型Model

    View显示的模型

    3.独立的ViewModel

    ViewModel中提供一个方法 内部调用网路请求 方法去请求ViewModel数据 请求之后不做处理返回给调用者

    4.网络请求类中提供类方法 使用AFN请求网络数据

    网络工具类中 同样是把请求得到的数据回传给调用者 内部不做任何数据处理

    5.在控制器中使用的使用就非常的清晰和简单

    控制器需要显示View,那么就去View类中获取。控制器需要View中显示的模型数据,那就去ViewModel类中直接获取。控制器所要做的任务就是中间桥梁作用,把ViewModel的数据交给View去显示。

    View ----> 控制器 <----ViewModel

    通过代码来看,ViewModel本质所做的工作就是在传统MVC模式中“C“所做的任务,只是现在把这部分代码独立出来。这样一来控制器内部的逻辑代码就显得比较清晰,干净。 从上述结构来看,这样也可以更加清晰的进行分工合作。View ---ViewModel---Model----网路工具类-----控制器。  他们完全可以独立开来,如果可以在团队合作中善加利用一定可以提高整个项目的结构化水平和层次感。

    如果你有更好的建议请致邮件到zihanvip520@163.com,欢迎打扰。

    相关文章

      网友评论

      • 落影loyinglin:总结下,你的数据基本存放在viewModel,Model只是一个简单的数据模型,Controller处理UI响应后的操作。
        我之前用的MVVM有点不同,C和V差不多,数据存放在Model,viewModel和Controller一一对应,数据结构和网络请求另放
        落影loyinglin:@冬哥夜话 UI逻辑在C,数据逻辑在VM
        码动人生:@落影loyinglin 那你是用ViewModel来处理逻辑的 吗

      本文标题:MVVM结构分析

      本文链接:https://www.haomeiwen.com/subject/cnyejttx.html