快速业务通道

了解Eclipse中的JFace数据绑定,第1部分: 数据绑定的优缺点 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
类几乎同 JGoodies 一样。特定于 Swing 的模型则被适用于 SWT 控件的模型所替代。

JFace 数据绑定

最近出现的另一个 Java 数据绑定新成员是 JFace 数据绑定框架。Eclipse V3.2 发布版中附带了该 API 的临时版本。不同于 SWTBinding/JGoodies 框架,JFace 数据绑定是从头开始构建的,专门与 SWT 和 JFace 结合使用。

数据绑定的优点

除了解决同步问题之外,在应用程序中使用数据绑定框架还有其他优点。由于是重复使用同一段同步代码,而不是创建自己的同步代码,因此出现的错误会少一些。另一个主要的优点是获得应用程序可测试性。

流行的 Presentation Model提倡将应用程序的状态与业务逻辑分开放入模型层中,而模型层是从视图的 GUI 控件中分离出来的。模型的状态频繁与视图同步,如图 2 所示。

图 2. 使用 Presentation Model 的关系

了解Eclipse中的JFace数据绑定,第1部分: 数据绑定的优缺点(6)

时间:2011-02-11 IBM Scott Delap

这类设计允许测试应用程序的所有业务逻辑而无需将视图实例化。例如,当总数大于 100 时启用表中的某些控件,有一个 "if total > 100" 的启用条件,还有一个基于此条件评估的相关状态。

使用 Presentation Model 模式,此状态被设在 Presentation Model 的变量中,并与视图同步以修改控件的启用。正因为这样,才能够测试逻辑而无需访问视图中的 GUI 组件。

用 SWT 和 Swing 通常很难访问 GUI 组件并模拟(mock)这些组件。针对 Presentation Model 运行所有测试,因为 Presentation Model 包含有条件的逻辑和一个储存随执行而更改的状态的空间。整个模式的一个难点是何时或怎样在 Presentation Model 和视图之间来回同步数据。在数据绑定前,解决这个问题很难。现在,这个问题就像在 Presentation Model 中将控件绑定到字段上或关联的域对象上一样容易。

数据绑定的缺点

在应用程序中使用数据绑定框架有一些缺点。首先,应用程序更难调试,因为附加的绑定层使追踪控件与域对象之间的数据流变得更难。不过,当熟悉了所使用框架的实现规范后,调试过程会变得更容易。

由于使用字符串表示属性,因此应用程序在重构期间很可能变得更脆弱。考虑一下清单 5 中的代码引用。字符串 "first" 用于通知 JFace 数据绑定框架绑定到 getFirst() / setFirst() 属性上。将 getFirst() 和 setFirst() 重构为 getFirstName() 和 setFirstName() 需要将字符串更改为 "firstName"。目前的 IDE 重构工具不会捕捉这种变化。

清单 5. 区域重构不捕捉

context.bind(text, new Property(bean, "first"), null); . . . private class FormBean {      private String first;    ...      public FormBean() {        this.first = "Scott";        this.last = "Delap";        this.description = "Description";      }      public String getFirst() {        return first;      }      public void setFirst(String first) {        this.first = first;      }   . . . }

结束语

无论是否在 SWT 或 Swing 中进行开发,在项目中使用数据绑定框架好处很多。没有人喜欢编写或维护样本 GUI 至域模型同步代码。我希望这篇入门级文章已经向您展示了 Java 数据绑定框架是如何能够让您从这些工作中解脱出来的。附带的好处是这些数据绑定框架在与适当的 GUI 设计模式结合使用时能够提高可测试性。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号