现在是 MVVM 盛行的时代,从早期的 Angular 到现在的 React 和 Vue ,再从最初的三分天下到现在的两虎相争
都给我们的开发带来了一种前所未有的新体验,告别了操作 DOM 的思维,换上了数据驱动页面的思想,果然时代的进步,改变了我们许多许多
同时随着 MVVM 的成熟;也逐渐成为了架构师的必备技能,话不多说;我们来进入今天的主题。去了解MVC、MVP和MVVM,去分析它们之间的区别。
MVC、MVP和MVVM是三种流行的设计模式,它们都在软件开发中被广泛应用,有助于创建松散耦合、易于测试和维护的应用程序。
- MVC
全称Model-View-Controller,代表了“模型-视图-控制器”的结构。
在MVC模式中,Model负责存储和操作数据,View负责显示,Controller负责处理用户的交互。这种模式的优点是结构清晰,职责明确,缺点是Controller的工作量可能较大,对系统的可维护性带来挑战。
- MVP
全称Model-View-Presenter,代表了“模型-视图-演示者”的结构。
在MVP模式中,View并不直接使用Model,而是通过Presenter进行交互。这种模式的好处在于,View和Model的解耦,缺点是可能导致大量的Presenter存在,对系统的可维护性带来挑战。
- MVVM
全称Model-View-ViewModel,代表了“模型-视图-视图模型”的结构。
在MVVM模式中,Presenter被重新命名为ViewModel,它负责监听Model中的数据变化并且控制视图的更新。这种模式的优点在于其结构更清晰,缺点在于可能会产生大量的ViewModel,对系统的可维护性带来挑战。
再说一下三者的共同点,也就是 Model 和 View:
Model: 数据对象,同时,提供本应用外部对应用程序数据的操作的接口,也可能在数据变化时发出变更通知;Model 不依赖于 View 的实现,只要外部程序调用 Model 的接口就能够实现对数据的增删改查
View: UI层,提供对最终用户的交互操作功能,包括UI展现代码及一些相关的界面逻辑代码
三者的差异在于如何粘合 View 和 Model,实现用户的交互操作以及变更通知
总体来看,MVC、MVP和MVVM三种设计模式在职责分配、耦合性、可维护性等方面存在差异。在实际应用中,可以根据项目的具体需求和情况来选择合适的设计模式。
好了,今天有关于 MVC、MVP、MVVM 的框架设计的阐述就到这里了;为了帮助大家了解更多架构师必备的技术知识,这里特别提供一份由腾讯大佬所整理的一份进阶架构师配套的一份学习手册;《Android十大模块进阶笔记》,包括车载开发、UI设计,Android Framework底层原理等方面。这份学习笔记不仅深入浅出,而且非常实用,让大家系统而高效地掌握Android开发的各个知识点
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。
另外还有腾讯薪选认证的Android移动架构成长路线图,帮助大家查漏补缺,理顺以后发展路线。
全套视频资料:
一、面试合集
二、源码解析合集
三、开源框架合集
欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取↓↓↓
![](https://img-blog.csdnimg.cn/img_convert/f34eb00ab56948335e2f623637fd776f.png)