Android基本框架-MVC

拿到课题已经半年多了,一开始学了点java就开始弄Android了
也就是在师兄的基础上改改,也没自己从头开始弄架构啥的,都是拿来用
因为也是应届找工作,介绍课题感觉自己课题确实没啥的,但是做起来确实对我来说有点难度,因为菜嘛!
找工作时候就问用的什么框架,我一脸懵,我这还用过框架嘛,很尴尬

后来也问了师兄说大概是最基本的mvc吧!
就百度学习了下什么是mvc,一般这种都是英文首字母,model 、view 、controller、模型-视图-控制器
mvc适用于小型项目(像我这种最简单最基本功能的),模型图如下(图源网)
Android基本框架-MVCview层主要是Layout中各种xml文件吧,各种布局界面代码
model层主要是java代码
controller层主要是各种Activity

主要流程就是通过controller的控制去操作model层的数据,并且返回给view层展示
1.View接受用户的请求,然后将请求或指令传递给Controller。
2.Controller进行业务逻辑处理后,通知Model去更新。
3.Model数据更新后,通知View去更新界面显示。

比如界面有一个按钮,按下这个按钮去网络上下载一个文件,这个按钮是view层的,是使用xml来写的,而那些和网络连接相关的代码写在其他类里,比如你可以写一个专门的类,这个就是model层,那怎么连接这两层呢,是通过 button.setOnClickListener()这个函数,这个函数就写在了activity中,对应于controller层
总的来说mvc比较简单基本。

存在问题:
xml作为view层,控制能力弱,想去动态的改变一个页面的背景,或者动态的隐藏/显示一个按钮,这些都没办法在xml中做,只能把代码写在activity中,造成了activity既是controller层,又是view层,导致controller与view难以完全解耦(activity即是控制器,又承担部分视图层的工作),并且随着项目复杂度的提升,controller将越来越臃肿,导致越写越繁琐,维护麻烦,所以只适合小项目。

综合以下文章
1.Android MVC框架
https://www.jianshu.com/p/84ea3fe49e08
2.Android框架MVC、MVP和MVVM探究(图解+案例+附源码)
https://blog.csdn.net/chaoshenzhaoxichao/article/details/79871145