大家都小看了DataBinding!

目前大家用dataBinding给人的感觉就是拿着长枪当木棒
优秀的人一直在努力减少重复工作量

DataBinding简介

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

DataBinding常见使用场景

单纯的摆脱findviewbyid
绑定基本数据类型及String、object
绑定事件
通过静态方法转换数据类型
通过运算符操作数据
自定义Binding的类名
绑定相同Model的操作
model变量改变自动更新数据
绑定List/Map等集合数据
Observable自动更新
Databinding与include标签的结合
DataBinding与RecyclerView的结合
具体就不细说了,参考

databinding常用场景感悟

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

databinding与视图模板

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

新手:

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

熟练:

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

老手:

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

小牛:

只需要调用一个recyclerViewManager,并设置layoutBinding。
为什么只需要一个recyclerViewManager?
因为这个manager将recyclerView和adapter都封装好了,只提供一个设置LayoutBinder的方法供调用者使用。因为layoutBinder已经包含了item视图的相关逻辑,除了这里是不同的意外,其他的地方,一摸一样,既然一摸一样,那就可以抽取出模板复用。
也就是说他早已经创造了一个模板,而三个界面,都只需要调用这个模板,再给他套一个画皮就可以了。
如此大大减少了工作量。

coder的实力评估

代码可读性、可维护扩展性、代码的复用、造轮子的能力。
很遗憾,很多人写出来的代码,在以上四个方面都不咋样。
哈哈哈哈哈,me too.


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

pageTan

你可能感兴趣的:(Android-pagetan,android,databinding)