Android下MVVM-Databinding框架

引言

       MVVM和Databinding是当前非常流行且实用的框架和工具,相信大家已经对MVC、MVP、MVVM框架以及Databinding有一定的了解。本篇文章主要介绍一个基于Databinding封装的MVVM框架,并且结合当下非常火的Android Architecture Components库可以实现一种更简单的MVVM框架。

一、MVVM-Databinding框架背景

       开篇先来了解下MVVM和Databinding及其各自优势,才能说明我们为什么要不辞辛劳的合二为一,并希望最终达到1+1>2的效果。

1.  MVVM框架简介及优势

       MVVM框架类似于早期的MVC和近期的MVP,但是比起这两个更为强势。MVVM中的ViewModel层类似MVP的Presenter层,所需要做的完全就是跟逻辑相关的代码,完全不会涉及到UI。当数据变化,直接驱动UI的改变,中间省去了MVP中冗余的接口。同时,在ViewModel层编写代码中,要求开发者需要将每个方法尽可能的做的功能单一,不与外部有任何的引用或者是联系,无形中提高了代码的健壮性,方便了后期的单元测试。如果想进一步了解的话,可以看下我同事写的文章(https://mp.weixin.qq.com/s/qk9vJcPgcVPYDn2rTTCJ1A)。下图形象说明了MVC、MVP、MVVM的进化过程:

2.  数据绑定框架DataBinding简介及优势

       DataBinding是谷歌出台的工具,可以实现UI和数据的绑定。我们的View和ViewModel通过DataBinding可以实现单向绑定或双向绑定,做到UI和数据的相互监听。同时开发者的任务分配也就很明确了,负责ViewModel的小伙伴完全不用考虑UI如何实现,很大程度上提高了代码的开发效率和后期出问题跟踪的准确性,针对这些好处,采用MVVM进行代码开发还是非常有必要的。当然,实现MVVM框架不是只能用DataBinding,可以实现UI和数据绑定的框架都可以,像开源框架RoboBinding等,甚至也可以使用Android Architecture Components库中的Livedata实现手动绑定UI和数据。如果您对Databinding不太熟悉,可以看下我写的这篇入门文章(https://www.jianshu.com/p/9fb720f405a7)。下图描述了Databinding数据流向:

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值