浅谈android中的MVC--【1】

前言:回忆下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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值