我所理解的MVC,MVVC,MVVM模式,给控制器层大瘦身

MVC是过去常用的架构模式,随着App的发展,界面的多样化,显然再使用MVC模式的会导致ViewController代码不断增多,更容易造成一些冗余的代码,如果作为迭代项目的话,更加不易维护。从而诞生了MVVM的架构模式。想想介绍请看下面具体内容

MVC(Model-View-Controller)

Model(模型):数据层,负责存储数据。

View(视图):展现层,用户所看到的页面

Controller(控制器):协调层,负责协调Model和View,根据用户在View上的动作在Model上作出对应的更改,同时将更改的信息返回到View上。

三者之间的关系

Controller可以直接访问Model,也可以直接控制View,但是Model和View不能相互通信,相当于COntroller就是介于这两者之间的协调者。
MVC这个模式这个模式太普遍就不再详细说了

MVVM(Model-View-ViewModel)

我所理解的MVC,MVVC,MVVM模式,给控制器层大瘦身_第1张图片

MVVM.png

Model(模型):数据层,负责存储数据。

View(控制器):就是ViewController层,他的任务就是从ViewModel层获取数据,然后显示。

ViewModel(视图模型):就是View和Model层的粘合剂,封装业务逻辑处理,封装网络处理,封装数据缓存。就是把原来ViewController层的业务逻辑和页面逻辑等剥离出来放到ViewModel层。

例如:

我所理解的MVC,MVVC,MVVM模式,给控制器层大瘦身_第2张图片

ViewModel.png

例如:

我所理解的MVC,MVVC,MVVM模式,给控制器层大瘦身_第3张图片

Controller

MVVC(Model-View-View-Controller)<自己起的名字>

Model(模型):数据层,负责存储数据。

View(视图):展现层,创建需求创建cell

View(视图):

  • 定义数组,用来接收控制中的数据。
  • 处理回调(比如:刷新回调、点击cell回调、加载更多回调、动态视图高度回调等等)

Controller(控制器):

  • 加载网络数据
  • 懒加载

代码走起!!!

我所理解的MVC,MVVC,MVVM模式,给控制器层大瘦身_第4张图片

控制器层.png

总结

动手写了个小demo,使用MVC模式,控制器层写了97行代码。使用MVVM模式,控制器层写了81行代码.使用MVVC模式,控制器层写了66行代码
虽然这个小demo很简单,但是怎么把这个小demo做到精致才是重点,怎么才能将控制器中的代码减少到最少,该封装的东西封装,该抽取的的地方抽取,这样才有利于维护和修改代码,如果有新的需求或者是bug的修改,我们可以快速定位到某个类里面,如果控制器太多冗余代码找起来也费劲,我觉得作为程序员的话应该以不断提高自己的能力和技术为主,而不是老是歇一歇重复性代码, 这样对自己的技术并没有提高。

demo下载

我所理解的MVC,MVVC,MVVM模式,给控制器层大瘦身_第5张图片

效果图



作者:flowerflower
链接:https://www.jianshu.com/p/028d01d80914
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(java)