《Android构建MVVM》系列(一) 之 MVVM架构快速入门

  该系列文章旨在为Android的开发者入门MVVM架构,掌握其基本开发模式。

  辅以讲解Android Architecture Components,使得更好的实现MVVM架构。

目录树

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

前言

分层思想

什么是MVC/MVP?

MVVM是什么,与MVC/MVP有何区别?

Android Architecture Components(架构组件)

一个MVVM的Demo

结语

《Android构建MVVM》系列(二) 之 架构组件LiveData

《Android构建MVVM》系列(三) 之 架构组件ViewModel

《Android构建MVVM》系列(四) 之 架构组件Room

《Android构建MVVM》系列(五) 之 构建更好的Demo

《Android构建MVVM》系列(六) 之 总结与展望

正文

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

一、分层思想

  层是一种思想,同时也是一种架构模式。它的特点是专职,即某一层的职责是相同的、确定的;比如我们平时所谓的Dao、Controller层…他们都有明确的职责。

  分层思想具体表现为,通过抽象某一类的逻辑构成一个水平功能面,进而对上层提供API;多个层面相互依赖、配合提供整体解决方案。层与层之间的依赖关系是自上而下的,即上层依赖下层,下层不能依赖上层,最底层的组件没有依赖。

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

  初学者往往搞不明白为什么明明可以直接编码业务逻辑,还要去做所谓的分层架构呢?

    其实对仅仅实现需求来说,用不用分层架构没有关系的,不分层照样可以实现;那么为什么我们还要徒增烦恼呢?有句话说的好:“存在即合理”,也就是说既然我们的前辈研究出了所谓的分层架构,并且沿用至今;那么就一定有它的优点,一定是解决了某一领域的痛点而诞生的

    试想以下场景:当你的项目随着需求的增加和不断调整,不可避免的就要去改动已有的代码,如果项目规模不大还好,如果是个老古董项目,可能某个类里面上万行的代码,没有注释,没有采用分层架构,相信我,你会哭的

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

  分层架构虽说不能完完全全的解决项目程序复杂度高的问题,但是通过分层,将大的问题抽象分解成了小的功能面,局部化在每一层中,这样就有效的降低了单个问题的规模和复杂度;另外层与层之间也可以通过简单的调整,插入新的层面,用以满足不断变化的需求,同一层面来说也可近乎0成本的水平扩展;并且易于后期的Debug、测试。

二、什么是MVC/MVP?

  来说说MVC吧,其实MVX模式都是分层思想的一种具体实现,上文提到的分层思想实际上是一种抽象层面的分层,着重表现在抽象和解耦。

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

  MVC实际上是一种分层思想的践行者和改进者,在GUI编程中,MVC已经有几十年的历史了。

    顾名思义M(Model)即数据模型层,Model层很有意思,对于服务端编程来说我们把MVC中的M极有可能是包括了业务处理(Service)和实体类的,对于客户端编程来说MVC中的M可能就仅仅是数据模型,当然以上的说法只是于我个人而言的体会,不代表广义立场。

  V(View)即视图层/表现层,主要负责数据的展示和用户的交互,C(Controller)即控制层,主要负责一些数据传递、请求转发、业务处理的委派。

  以上是标准意义上的MVC,对于Android来说:

Model:数据模型(实体类、持久化、IO)
View:布局文件
Controller:对应于Activity、Fragment,包含一些业务逻辑的处理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyzxg.html