Java中的UI数据绑定比它的价值更麻烦吗?

时间:2011-05-05 06:54:54

标签: java data-binding jgoodies glazedlists

我最近花了一些时间学习并尝试使用各种Java数据绑定工具,例如JGoodies,GlazedLists,JSR-295等。我一直试图解决的问题不是那个< / em>很难,但是我为支持绑定过程而编写的代码量远远超过它提供的任何简化。

我发现所提供的工具不适用于除了微不足道的组合和扩展之外的任何其他工具(GlazedLists特别提供了一套很好的工具,但是系统扩展得太复杂了。)

我非常喜欢数据绑定的想法,但它似乎存在严重缺陷。我错过了什么吗?

2 个答案:

答案 0 :(得分:6)

我所有关于桌面模式和数据绑定的演示都包含有关开发人员面临的自动数据绑定问题的强烈警告。我建议考虑使用像MVP这样的桌面模式,它非常易于使用且不需要绑定。

绑定问题是许多隐式操作;如果出现意外情况,这些帮助很难理解,只有少数开发人员可以在第三方绑定链中调试和解决问题。

但是在过去的三年里,我工作的项目中的程序员实际上遇到了问题。所以我倾向于说绑定不再是一个大问题。

答案 1 :(得分:4)

如果您的应用程序是微不足道的,那么无论您是绑定还是逐个编写听众,都无关紧要。

如果你的应用程序已经在一些人的月份取得了进展,那么在事后引入绑定会引起一些痛苦。几乎每种(有用的)技术都是如此。大量的痛苦可能来自你以前认为理所当然的混乱。

如果你正确使用绑定,你可能会完全分离gui和gui的行为。这反过来意味着

  • 你可以测试你presentation model(绑定组件的东西)没有摆动,没有EDT,只需要进行单元测试。
  • 您可以使用仅涉及极少数Swing组件的简单测试来测试绑定

如果你尝试在没有绑定框架的情况下达到相同的目标,那么你最终将编写自己的绑定框架。

虽然IMHO关于java世界中的绑定存在严重问题。它迫使你使用PropertyChangeSupport编写getter + setter,这很乏味且容易出错。我没有看到用Java修复它的现实方法,但其他语言(想想Scala)在这里提供了有趣的机会。如果您有兴趣,请参阅我上一篇博客文章:http://blog.schauderhaft.de/2011/05/01/binding-scala-objects-to-swing-components/