大家都小看了DataBinding!

271 阅读2分钟
原文链接: mp.weixin.qq.com

开 篇

目前大家用dataBinding给人的感觉就是拿着长枪当木棒 

优秀的人一直在努力减少重复工作量

本文不会涉及具体代码,至于大家会不会失望,看完才知道

-  1  -

DataBinding简介

DataBinding是2015年谷歌I/O大会上介绍了一个框架,DataBinding是一个数据绑定框架,将数据与布局相绑定。

-  2  -

DataBinding常见使用场景

单纯的摆脱findviewbyid

绑定基本数据类型及String、object

绑定事件

通过静态方法转换数据类型

通过运算符操作数据

自定义Binding的类名

绑定相同Model的操作

model变量改变自动更新数据

绑定List/Map等集合数据

Observable自动更新

Databinding与include标签的结合

DataBinding与RecyclerView的结合

具体就不细说了,[参考databinding基础使用]

(https://blog.csdn.net/qq_33689414/article/details/52205703)

-  3  -

databinding常用场景感悟

databinding将布局与数据相互结合,如此一来不需要在adapter中去写相关逻辑,而是将item对应view与相应逻辑相互绑定。这一点很重要,由这个感悟可以得出以下一点。

-  4  -

databinding与模板

在一个常规项目中,使用列表视图的界面至少有三个,而这三个视图……

新手:

需要写三个recyclerView,三个adapter,三个itemLayout,在相应的地方各自编写相关代码

熟练:

需要写一个recyclerView,三个adapter,三个itemLayout,在相应的地方new出来

老手:

需要写一个recyclerView,一个adapter,三个itemLayout,三个createViewHolder和bindViewHolder

小牛:

只需要调用一个recyclerViewManager,并设置layoutBinding。

为什么只需要一个recyclerViewManager?

因为这个manager将recyclerView和adapter都封装好了,只提供一个设置LayoutBinder的方法供调用者使用。

由于layoutBinder已经包含了item视图的相关逻辑,除了这里是不同的以外,其他的地方,一摸一样!既然一摸一样,那就可以抽取出模板复用。

也就是说他早已经创造了一个模板,而三个界面,都只需要调用这个模板,再给他套一个画皮就可以了。如此大大减少了工作量。

写不同的列表,不过是轮子的一次又一次重复使用罢了。

-  5  -

coder的实力评估

代码可读性、可维护扩展性、代码的复用、造轮子的能力。

很遗憾,很多人写出来的代码,在以上四个方面都不咋样。

哈哈哈哈哈,me too.

the-end

欢迎关注微信公众号:云端看大地

即将带来的是:

我工作经验系列文章

预测彩票的系列文章

敬请期待