浅谈android中的MVC--【1】

来源:互联网 发布:人工蜂群算法 matlab 编辑:程序博客网 时间:2024/05/16 09:57

前言:回忆下MVC

这是维基百科的解释Link:https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

稍作修改。应该是这样的

一直以为android是很好的支持了MVC。我一直都觉得这很怪。到底算不算MVC呢?

答案是肯定的。。。



先看下android项目的文件目录结构

无疑问的确定View

Androidres,包含了layout, values, xml, anim。这是可以归属到View去的。

纠结的Control

每个Activity都包含了一个Window。这个Window中有DecorViewDecorView便是所有View的载体。 页面的逻辑处理就在Activity中。。。为什么要纠结的认为这不是个C呢?等下说

Model

这部分AndroidIOS都一样,没有定义。这需要我们自己去实现,所以,我们就变得纠结了,Activity的包容完全可以实现这些。

回头看下为何纠结Activity不是个Controller

就是因为Activity实现了太多,甚至实现了很多Model的功能,导致Activity臃肿。。。

错觉就来了。。。。

Android的V,C有部分是在Activity中,但从功能划分,Activity只应该有Controller的部分。而事实上,Activity负责着View跟Controller的桥接。Activity还得稍微切割一下。

最终的Model更新View部分的代码,看似通过Controller(Activity)进行,可以理解成Model---update---》View

 

小结,Android还是个MVC的结构。时至今日,还有MVP,MVVM,更准确的说是Android只是做了MV,但MVX并没有明确的划分。。。


附上代码:https://github.com/wangxueming/Samples-Mvc

0 0