MVC (Model-View-Controller)模式分为三层:
1、视图层(View):
对应于XML布局文件
2、控制层(Controller):
Android的控制层是由Activity来承担的,Activity本来主要是作为初始化页面,展示数据的操作,但是因为XML视图功能太弱,所以Activity既要负责视图的显示又要加入控制逻辑,承担的功能过多。
我们针对业务模型,建立的数据结构和相关的类,它主要负责网络请求,数据库处理,I/O的操作。
Android 中的具体实现:
在 Android 开发中,其本身默认可以理解为 MVC 结构,把 View 放在 xml 中与 Java 代码解耦,然后 Activity / Fragment 充当 Controller 进行逻辑控制,但是 Android 本身并没有对 Model 进行划分,所以往往我们会让 Activity / Fragment 充当 Model 和 Controller 两个角色。而且往往 xml 中的 View 操作也是在 Activity / Fragment 中,导致有时候 Activity / Fragment 也会充当一些 View 的角色。
再android的UI系统中,控制器Activity起到的主要作用是解耦,将视图view与模型model进行分离,两者再activity中进行绑定或完成其他逻辑。
4. MVC的优点
- 视图层(View)与模型层(Model)解偶,通过Controller来进行联系。
- 模块职责划分明确。主要划分层M,V,C三个模块,利于代码的维护。
5. MVC的缺点
- Android中使用了
Activity
来充当Controller,但实际上一些UI也是由Activity
来控制的,比如进度条等。因此部分视图就会跟Controller捆绑在同一个类了。同时,由于Activity
的职责过大,Activity
类的代码也会迅速膨胀。 - MVC还有一个重要的缺陷就是View跟Model是有交互的,没有做到完全的分离,这就会产生耦合。
![](https://img2020.cnblogs.com/blog/1019373/202012/1019373-20201206144601995-1912044915.png)
转载请标明:https://www.cnblogs.com/tangZH/p/13822749.html