Android MVVM框架RoboBinding初探
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android MVVM框架RoboBinding初探,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2533字,纯文字阅读大概需要4分钟。
内容图文
今年在HTML5开发中使用AngularJS框架,觉得MVVM的框架太方便了,双向绑定机制省去了很多繁琐的工作,于是想在新的Android项目也引入类似的MVVM框架,提高团队的开发效率和代码的工程化程度,然后就找到了RoboBinding这个框架,简单看了下感觉应该还算靠谱。
RoboBinding是一个实现了数据绑定
Presentation Model
(
MVVM
)
模式的Android开源框架。MVVM模式是MVC模式的重要更新,使得项目结构更加的优美,易于维护以及方便于测试。这也是为什么几个主流的语言都有相应的MVVM框架实现如
Microsfot WPF
,
Silverlight
,JavaFX以及Flex。
在没有性能损失的前提下(使用AspectJ字节码生成来替代Java反射),RoboBinding 帮助你编写更可读,易于测试与维护的UI代码。框架具备以下优点:
-
通过绑定移除 - 大量不必要的代码(如addXXListener(),findViewById()等) 。
-
将 - 难于测试的Android代码以及运行过久且不切实际的Android单元测试 - 变为 pojo PresentationModels 及其普通的JUnit单元测试。
-
提供对象类型Cursor来替换 - 关系类型Cursor,因为我们已经习惯于操作对象 。
-
可以很容易的为任何自定义组件,第三方组件或Android widget编写属性绑定实现,简化代码,使项目易于维护。
从简单的角度看,他移除了如addXXListener(),findViewById()这些不必要的代码,连如BufferKnife那样的InjectView都不需要,因为你的代码一般不需要依赖于这些界面组件信息。下面以一个最简单的AndroidMVVM为例。
Layout:
1
2
3
4
5
6
7
8
9
10
|
<
LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:tools
=
"http://schemas.android.com/tools"
xmlns:bind
=
"http://robobinding.org/android"
>
<
TextView
bind:text
=
"{hello}" />
...
<
Button
android:text
=
"Say Hello"
bind:onClick
=
"sayHello"
/>
</
LinearLayout
>
|
Presentation Model:
1
2
3
4
5
6
7
8
9
10
|
public class PresentationModel extends AbstractPresentationModel {
private String name;
public String getHello() {
return name + ": hello Android MVVM(Presentation Model)!" ;
}
...
public void sayHello() {
firePropertyChange(
"hello"
);
}
}
|
Activity将layout与对应的presentation model绑定在一起。
1
2
3
4
5
6
7
8
9
|
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
PresentationModel presentationModel =
new PresentationModel();
View rootView = Binders.inflateAndBindWithoutPreInitializingViews(
this
, R.layout.activity_main, presentationModel);
setContentView(rootView);
}
}
|
这样layout的{hello}与PresentationModel.hello绑定,layout的sayHello与PresenationModel.sayHello方法绑定。我们不需要在Layout中定义TextView, Button的Id因为我们不关心,且没有必要。当我们进一步观察时,我们发现PresentationModel是一个Pure POJO。这也是为什么软件界的泰斗Martin Fowler在2004年,提出了Presenation Model(MVVM) 模式。它是我们所熟悉的MVC的升级,进一步的把界面状态与逻辑解藕到Presentation Model中。我们可以通过以下几个示例项目学习RoboBinding使用,他们都可以直接导入Android Studio无需额外配置:
1.AndroidMVVM,最小的RoboBinding使用例子。
2.Album Sample,是Martin Fowler的Presentation Model模式原始例子基于RoboBinding的Android翻译版本。
3.Gallery,是用于展示RoboBinding的各种特性的使用包含Fragment, Menu, ViewPager等。
项目的中文文档地址是:http://robobinding.github.io/RoboBinding/index.zh.html
项目主页: http://www.open-open.com/lib/view/home/1410667351476
原文:http://blog.csdn.net/offbye/article/details/41544979
内容总结
以上是互联网集市为您收集整理的Android MVVM框架RoboBinding初探全部内容,希望文章能够帮你解决Android MVVM框架RoboBinding初探所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。