android MVC MVP MVVM如何区分
来源:互联网 发布:如何看懂财务报表 知乎 编辑:程序博客网 时间:2024/09/21 06:19
MVC
MVC, Model View Controller,是软件架构中最常见的一种框架,简单地说就是通过controller的控制去操作model层的数据,并且返回给view层展示,具体见下图
当用户发出事件的时候,view层会发送指令到controller层,接着controller层去通知model层更新数据,model层更新完数据以后直接显示在view层上,这就是MVC的工作原理。
对于android项目来说,layout.xml里面的xml文件就对应于MVC的view层,至于controller层就是各种activity了。
MVC存在的缺陷:
1,xml作为view层,控制力太弱了,你想去动态改变一个页面的背景,或者动态的隐藏或显示一个按钮,这些都没有办法在xml中做,只能把代码写在activity里,造成了activity既是controller层又是view层。
2,还有一个重要的缺陷就是view和model层是互相可知的,这意味着两层之间存在耦合,耦合对于一个大型程序来说是致命的。所以才演化出MVP和MVVM两种框架。
MVP
MVP作为MVC的演化,解决了MVC不少的缺点,对于Android来说,MVP的model层相对于MVC是一样的,而activvity和fragment不再是controller层,而是纯粹的View层,所有关于用户事件的转发全部交由presenter层处理。
从图中可以看出,最明显的差别就是view和model层不再相互可知了,完全的解耦,取而代之的是presenter层充当了桥梁的作用。用于操作view层发出的事件传递到presenter层中,presenter层去操作model层,并且将数据返回给view层,整个过程中view层和odel层没有联系。大家可能会问,虽然view层和mdel层解耦了,但是view和presenter层不是耦合在一起了吗?其实不是的,对于view层和presenter层的通信,我们是可以通过接口实现的,具体的意思就是说我们的activity,fragment可以去实现定义好的接口,而在对应的presenter中通过接口调用方法。
MVVM
它和MVP的区别貌似不大,只不过是presenter层换成了viewModel层,还有一点就是view层和viewModel层是相互绑定的关系,这意味着当你更新viewmodel等的数据的时候,view层会相应的变动ui.
- android MVC MVP MVVM如何区分
- mvc、mvvm、mvp模式区分
- 区分了解MVP, MVC, MVVM
- android MVC,MVP,MVVM
- Android MVC MVP MVVM
- Android MVC MVP MVVM
- android MVC,MVP,MVVM概论
- Android MVC MVP MVVM 模式
- Android 中的MVC、MVP、MVVM
- Android架构--MVC、MVP、MVVM
- Android mvvm mvc mvp到底是什么?简述mvvm mvc mvp
- MVC,MVP 和 MVVM 模式如何选择?
- MVC,MVP 和 MVVM 模式如何选择?
- 【Android】【设计】Android 框架 MVC,MVP,MVVM
- android MVC && MVP && MVVM分析和对比
- MVC, MVP, MVVM比较以及区别-Android
- Android中MVC、MVP、MVVM详解
- 认清Android框架 MVC,MVP和MVVM
- Mathematica数据处理(12)--图例
- JS获取样式 改变样式
- Binary
- Java NIO系列教程(十一) Pipe
- C++ 去掉字符串末尾或者首的字符
- android MVC MVP MVVM如何区分
- Windows下Redis安装
- Material Design动画:涟漪效果
- 浅谈项目管理
- 使用CXF遇到的错误
- Android开发之BroadcastReceiver
- Spring的事务管理难点剖析:事务方法嵌套调用的迷茫
- 程序员注意事项
- Java NIO系列教程(十二) Java NIO与IO