google data binding框架,与MVVM

> DataBinding 框架
DataBindingDemo- https://github.com/dragonjiang/DataBindingDemo
 2015年的Google IO大会上,Android团队发布了一个官方的数据绑定框架(Data Binding Library)。通过这个框架可以
直接在layout布局文件中绑定数据,无需再写繁琐的findViewById,可以为我们省下大量的样板代码;更进一步的,可以
直接通过更改数据来改变视图,把繁琐的事情交给Data Binding Library。
-- Data Binding Library是一个support库,最低支持到Android 2.1(API level 7+)。
  要使用data binding需要将Gradle升级到1.5.0-alpha1或者更新的版本,Android Studio升级到1.3或者更新的版本。
  类似于ButterKnife、GreenDao3.x等第三方扩展库,Data Binding会在运行时,根据布局文件通过一定的规则自动生成
java文件,如果发现相应的类没有自动生成(Android Studio中会报错,找不到响应的类文件),可以采用clean或者
rebuild的方式,让AndroidStudio主动生成代码。

-- Data Binding 利弊
1.优势:
 DataBinding 出现以前,我们在实现 UI 界面时,不可避免的编写大量的毫无营养的代码:比如 View.findViewById();
比如各种更新 View 属性的 setter:setText(),setVisibility(),setEnabled() 或者 setOnClickListener() 等等。
 这些“垃圾代码”数量越多,越容易滋生 bug。
 使用 DataBinding,我们可以避免书写这些“垃圾代码”。

2.劣势:
 使用 Data Binding 会增加编译出的 apk 文件的类数量和方法数量。
 新建一个空的工程,统计打开 build.gradle 中 Data Binding 开关前后的 apk 文件中类数量和方法数量,类增加了
120+,方法数增加了 9k+(开启混淆后该数量减少为 3k+)。
 如果工程对方法数量很敏感的话,请慎重使用 Data Binding。

> MVVM
  MVVM可以算是MVP的升级版,其中的VM是ViewModel的缩写,ViewModel可以理解成是View的数据模型和Presenter的合体,ViewModel和View之间的交互通过Data Binding完成,而Data Binding可以实现双向的交互,这就使得视图和控制层之间的耦合程度进一步降低,关注点分离更为彻底,同时减轻了Activity的压力。
  Data Binding是google发布的用以实现数据和UI绑定的框架,使用此框架可方便的实现MVVM开发模式。借用阮一峰老师对MVVM模式的概括:“MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular 和 Ember 都采用这种模式。”

猜你喜欢

转载自blog.csdn.net/ShareUs/article/details/82787634