初步理解MVC与MVP
来源:互联网 发布:herry it 编辑:程序博客网 时间:2024/06/05 06:09
今天偶然看到一篇博客:http://zjutkz.net 中的《教你认清MVC,MVP和MVVM》。
说实话:MVC还是模模糊糊,MVP只是听说过,MVVM是第一次听说。好吧,为了不那么落伍,就详细看了看。因为各种原因,目前只看到了MVP
首先理解MVC:
Model--View--controller
Model:就是数据bean
View:就是布局文件中的view,也就是各种View和ViewGroup
controller:就是控制器,就是Activity
控制器控制数据在view上的展示
这种情况下View与controller是相互关联的:因为我们一般在activity中操作数据和view。
(其实真实的mvc应该是控制器操作数据,view只管view,不管操作数据的)
MVP:
MVP模式就是将view与controller解耦。
MVP核心思想:将UI部分抽象为View接口,将controller部分抽象成presenter接口,Model还是原来的model
这样,Activity不操作数据。只负责处理生命周期相关View
(后台引用数据的时候,不会因为数据在Activity中操作而占用Activity不能被回收)
也就是说从传统的Activity中可以抽离出两个接口:View接口和Presenter接口
那么有接口就要有实现:
View接口的实现就是Activity或者Fragment;
Presenter的实现就是自定义的一个子类
View接口要定义对view的操作。如显示,隐藏,赋值等
Presenter接口主要定义对数据的操作。然后通过调用View的方法将数据与view关联
那么presenter的实现类里面还是要有View接口的对象的
数据就在Presenter里面获取,数据的操作就在Presenter里面做。数据与View的关联通过调用View接口对象的方法做。既然要通过调用View接口的方法,也就是说要对View要进行的操作都还是要在View接口中定义的。
尝试一下下来的总结是:
View接口定义对View的操作,要在子类(Activity或者Fragment)中实现操作
Presenter接口定义对数据和View的操作,在子类中实现
在View中调用presenter对象的方法,而Presenter对象中的实现都是通过获取的View对象调用的View中的方法。到这里一目了然:就是各种回调
重点其实是在Presenter中操作数据,然后通过调用View对象的方法将数据与View关联
参考的博客:
http://blog.csdn.net/lmj623565791/article/details/46596109
https://segmentfault.com/a/1190000003927200
http://zjutkz.net
- 初步理解MVC与MVP
- MVC、MVP、MVVM深入理解与使用
- MVC、MVP、MVVM的理解与使用
- MVC、MVP的理解
- 理解 MVC MVP MVVM
- 理解 MVC MVP MVVM
- MVC与MVP以及MVVM的简介与理解
- Android MVP与MVC的区别和理解
- MVC初步理解
- mvc初步理解
- MVC、MVP与MVT
- MVC, MVP与MVVM
- MVC与MVP
- MVC与MVP
- android MVC与MVP
- mvc与mvp
- mvc与mvp区别
- mvp与mvc
- 分布式文件系统:原理、问题与方法
- Hibernate 加载主配置文件的代码
- Android项目开发总结(二)-- 架构篇
- LintCode统计前面比自己小的数的个数(线段树)
- Git 设置不需要用户名、密码直接push的操作
- 初步理解MVC与MVP
- Centos下安装python2.7 安装工具
- Effective Object C 2.0——熟悉Object-C
- 后及性、无前溯性与无后效性——马尔可夫过程“无后效性”回溯谈
- pcl使用迭代的最近的点
- 一种查看chromium代码两任何两个版本之间修改Log的方法
- 模版--两圆相交部分面积
- 如何获取到Hadoop集群的个数
- SpringMvc - 用户注册自动生成默认头像深色底/浅色字工具类实现