前言
你好!
我是一只修仙的猿,欢迎阅读我的文章,希望能让你有所收获。
MVC、MVP、MVVM均为架构模式,应用在Android上,称为Android架构模式。可能你会觉得我在讲废话,清楚他的定义非常重要。这样会有几个问题:
- 什么是架构模式?什么是android架构模式?
- MVC、MVP、MVVM的本质区别是什么?
- 他们在android上的应用是怎么样的?
- 我们该如何选择?
弄清楚这几个问题,可以帮助我们更好地理解这三种架构模式,继而更好地运用它们。
这篇文章主要的内容是带你了解什么是架构以及android架构,以及详解三种架构模式的本质。
笔者才疏学浅,有不同观点欢迎评论区或私信讨论。如需转载私信告知即可。
另外欢迎阅读笔者的个人博客一只修仙的猿的个人博客,更精美的UI,拥有更好的阅读体验。
本文目录

架构以及Android架构
架构,即为骨架,是指导开发的关键。例如一个人,身体的骨骼即为身体的架构,有了基本骨架之后,才可以决定在头颅里开发大脑,在肋骨中开发肺部等。软件开发也是如此,也需要一个“骨架”,即架构。他可以指引我们什么地方该做什么事情,让整个软件的开发思路非常清晰。
Android架构,即为开发android时使用的架构。Android的开发一般分为三部分:UI逻辑,业务逻辑和数据操作逻辑。这里可以举个例子
获取天气详情并展示。首先要写布局xml,接着在Activity中获取到view实例。此为UI逻辑。然后需要通过网络请求获得数据,此为数据操作逻辑。接着获取到数据后,需要将数据进行缓存,解析,再set到view上进行展示,此为业务逻辑。
Android架构,就是为了更好地协调这三者的关系。达到:
- 各模块高内聚低耦合的状态,方便进行团队分工合作开发。
- 代码思路清晰,提高代码的可维护性与可测试性。
- 减少样板代码,提高开发效率,减少开发错误。
为了达到这些目的,所有才有各种架构不断涌现,却没有一个统一的开发框架。不同于移动端,web端开发有成熟的SpringMVC框架,可以快速规范地开发一个项目。而移动端缺乏框架的支撑,各路大神各显神通,不断涌现了不同的架构模式来适应不同的开发情景,如MVC,MVP等等。但由于没有历史的沉淀,各种架构模式的弊端也渐渐浮出水面。在这种情境下,谷歌退出了架构组件,用成熟的框架来减少样板代码,提高开发效率,有如SpringMVC的风范,这就是MVVM的框架实现。下面我们就详细展开讲这些架构模式。
详解三种架构模式
MVC
Android上的MVC架构我认为是来源于web开发的SpringMVC,MVC全名为Model-View-Controller,图解如下

- View:负责与用户交汇,显示界面。
- Controller:负责接收来自view的请求,处理业务逻辑。
- Model:负责数据逻辑,网络请求数据以及本地数据库操作数据等。
在MVC架构中,Controller是业务的主要承载者,几乎所有的业务逻辑都在Controller中进行编写。而View主要负责UI逻辑,而Model是数据逻辑,彼此分工。
MVC的本质就是按照UI逻辑、业务逻辑、数据逻辑不同的职责分三大模块,彼此分工。
在Android中,view一般使用xml进行编写,但xml的能力不全面,需要Activity进行一些UI逻辑的编写,因而MVC中