Android中的MVC和MVP模式的简单理解
来源:互联网 发布:maven 3.0.5 mac 编辑:程序博客网 时间:2024/05/15 08:13
MVC模式:简单的说就是通过Controller的控制去操作Model层数据,并且返回给View展示.
MVC, 即Model-View-Controller;
Model: 数据层,负责处理业务逻辑,监听网络与数据库接口.
View : 界面(UI层,xml布局或者其他继承View类的视图),显示来源于Model的数据.
Controller: 控制器(Activity和Fragment),传递用户交互和更新数据.(包括:键盘敲击、屏幕触摸、电话呼入等。)
MVC典型例子的实现ListView/GridView/RecyclerView等.
Android中最典型MVC是ListView,要显示的数据是Model,界面中的ListView是View,控制数据怎样在ListView中显示是Controller。
优点: 1. 数据层和视图层分离,这样视图层修改而不用重新编译模型和控制器代码..
2. 重用性高---多个视图能共享一个model
缺点: 1.Controller层会既是控制层又是view层,因为在xml中无法动态的去修改view,只能在Controller中去修改,这就造成了Actviity既是控制层又是view层.
2. View层和Model层是相互可知的,两者之间存在耦合.
MVC工作原理:当用户触发事件的时候,view层会发送指令到controller层,接着controller去通知model层更新数据,model层更新完数据以后直接显示在view层上,这就是MVC的工作原理.
MVP(是MVC模式的演化版,这里Activity和Fragment不再是Controller而仅仅是作为View层,所有用户事件的转发都在Presenter层处理.)
MVP 模式所做的事情很简单,就是将业务逻辑和视图逻辑抽象到接口中。
从图中看出,最明显的差别就是view层和model层不在互相可知,完全的解耦,presenter层充当了中介者,view层发出的事件传递到presenter层,presenter层去操作model层,并且将数据返回给view层,整个过程中view和model层没有任何关联,
优点: 1. 降低耦合度,实现了Model和View真正的完全分离,可以修改View而不影响Modle
2. 模块职责划分明显,层次清晰
缺点: 逻辑复杂的页面,可能会有很多接口,维护接口的成本会很大.
http://download.csdn.net/download/xvzhengyang/10137891代码链接,登陆的小demo
MVC, 即Model-View-Controller;
Model: 数据层,负责处理业务逻辑,监听网络与数据库接口.
View : 界面(UI层,xml布局或者其他继承View类的视图),显示来源于Model的数据.
Controller: 控制器(Activity和Fragment),传递用户交互和更新数据.(包括:键盘敲击、屏幕触摸、电话呼入等。)
MVC典型例子的实现ListView/GridView/RecyclerView等.
Android中最典型MVC是ListView,要显示的数据是Model,界面中的ListView是View,控制数据怎样在ListView中显示是Controller。
优点: 1. 数据层和视图层分离,这样视图层修改而不用重新编译模型和控制器代码..
2. 重用性高---多个视图能共享一个model
缺点: 1.Controller层会既是控制层又是view层,因为在xml中无法动态的去修改view,只能在Controller中去修改,这就造成了Actviity既是控制层又是view层.
2. View层和Model层是相互可知的,两者之间存在耦合.
MVC工作原理:当用户触发事件的时候,view层会发送指令到controller层,接着controller去通知model层更新数据,model层更新完数据以后直接显示在view层上,这就是MVC的工作原理.
MVP(是MVC模式的演化版,这里Activity和Fragment不再是Controller而仅仅是作为View层,所有用户事件的转发都在Presenter层处理.)
MVP 模式所做的事情很简单,就是将业务逻辑和视图逻辑抽象到接口中。
从图中看出,最明显的差别就是view层和model层不在互相可知,完全的解耦,presenter层充当了中介者,view层发出的事件传递到presenter层,presenter层去操作model层,并且将数据返回给view层,整个过程中view和model层没有任何关联,
优点: 1. 降低耦合度,实现了Model和View真正的完全分离,可以修改View而不影响Modle
2. 模块职责划分明显,层次清晰
缺点: 逻辑复杂的页面,可能会有很多接口,维护接口的成本会很大.
http://download.csdn.net/download/xvzhengyang/10137891代码链接,登陆的小demo
阅读全文
0 0
- Android中的MVC和MVP模式的简单理解
- Android MVC,MVP架构模式的简单理解
- android中的MVC,MVP和MVVM模式简单总结
- Android中的MVC和MVP模式
- 解析Android的MVC和MVP模式
- Android中的MVP模式的理解
- Android学习之浅谈对MVC模式和MVP模式的理解
- Android中的代码管理和MVP,MVC模式在Android中的使用(重点:理解“高内聚、低耦合”)
- Android中的MVP模式与MVC模式的比较分析
- Android中的MVC和MVP
- MVP模式的简单理解
- Android开发模式之MVC,MVP和MVVM的简单介绍与区别
- Android开发模式之MVC,MVP和MVVM的简单介绍与区别
- Android开发模式之MVC,MVP和MVVM的简单介绍与区别
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 理解MVC,MVP和MVVM设计模式
- 前端学习路线
- 软件调试笔记18
- 自主研发全套微信云控源码
- 接口测试-基础知识-01
- 关于pthread_detach(pthread_self())
- Android中的MVC和MVP模式的简单理解
- Unity 技巧参考
- Ubuntu下QT的安装详细教程
- 有关namespace的相关知识
- JAVA设计模式之复合模式
- delete连表删除
- Android属性动画
- 技术分享连接汇总[201709-10]
- Linux环境下DHCP服务器的安装与配置详解