Android MVVM设计模式(摸索)

正文

今天我们来一起来了解下Android MVVM设计模式

关键字:MVVM、Jetpack、DataBinding、ViewModel、LiveData、Kotlin

我之前开发的时候,觉得不按框架而按自己的想法去写是可以的,但是自己开发了几次之后就发现维护起来特别地困难,现在我的想法改变了,我觉得是时候学学使用框架开发,所以我写关于Android MVVM的一系列文章,我也是刚开始学(MVVM都出来好几年了,甚是尴尬,赶紧学起来吧)

我们先从几个概念出发

MVVM

一种设计框架,分为View、ViewModel、Model三层

View层:包括Activity、Fragment,主要负责UI控件的更新显示,不涉及任何的业务逻辑

ViewModel:这一层和View层是相反的,它只负责业务逻辑,不能做UI方面的工作

Model:主要是数据的获取和整合,可以从本地数据库获取数据,也可以从后台服务器获取,提供一个数据仓库整合数据

这三层只是上层拥有下层的引用,反过来不能,比如View层可以拥有ViewModel层的引用,但是ViewModel不能拥有View层的引用,而且不能跨层引用,也就是说View层不用直接拥有Model层的引用,必须要通过ViewModel引用Model层才能实现相关的功能

那么,我们明白了MVVM的思想了该怎么设计呢,代码应该怎么写呢,这个不要慌,我们慢慢学(我也是刚学,正在摸索中),先往下看

Jetpack

先上一张官网的图

《Android MVVM设计模式(摸索)》 image.png

《Android MVVM设计模式(摸索)》 image.png

官网描述地很清楚,但是我们还是不知道从何开始,不急,我们再来了解几个有趣牛逼的东西

DataBinding

这个东西就牛逼了,而且Jetpack2.0也集成了DataBinding

DataBinding:早在2015年的IO大会就已经介绍了(太尴尬了,出来这么久了我都还没用过),它可以帮助我们实现MVVM,它可以将数据绑定在xml中,既可以单向绑定,也可以双向绑定,单向绑定好理解,所谓双向绑定就是数据变化时,UI也做相应的变化

这个我们现在只要知道它可以帮助我们实现MVVM就可以了,具体怎么用我们后面慢慢讲(其实我是真的没用过,我要用过之后才能写,不能乱写)

LiveData

这个也是在Jetpack里的一个架构,我们先从字面意思上对它解读

首先Data一看就知道它应该和数据有关,然后就是Live,有生命的意思,在Android中有生命周期这一概念,那这样下来,我们可以得到一个结论:LiveData它应该是一个和生命周期相关的数据之类的架构

LiveData:一种具有感知生命周期能力的可观察数据持有类,一般在ViewModel中定义

为什么要赋予它生命周期感知能力呢,其实是为了有效地防止内存泄漏

Kotlin

相信大家对这个名字不陌生了吧,现在很多开发都是用的Kotlin,渐渐地成为了一种趋势了,我之前也只是知道这个语言,不去了解,就像当时只用eclipse + ADT开发app而不去了解AS一样,现在我可能要花点时间去学习下Kotlin了,不然就OUT,跟不上时代了

最后附上Google在B站上的Android开发教学视频(之前还没注意Google居然入驻B站,尴尬)

    原文作者:JYangkai
    原文地址: https://www.jianshu.com/p/66c9e06b3858
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞