tim*_*att 14 java data-binding jgoodies glazedlists
我最近花了一些时间学习并尝试使用各种Java数据绑定工具,如JGoodies,GlazedLists,JSR-295等.我一直试图解决的问题并不是那么困难,但是代码量很大我必须写支持绑定过程,这大大超过了它提供的任何简化.
我发现所提供的工具并不适用于除了微不足道的组合和扩展之外的任何其他工具(GlazedLists特别提供了一套很好的工具,但是扩展的系统太复杂了).
我真的很喜欢数据绑定的想法,但它似乎存在严重缺陷.我错过了什么吗?
小智 6
我关于桌面模式和数据绑定的所有演示都包含有关开发人员面临的自动数据绑定问题的强烈警告.我建议考虑使用像MVP这样的桌面模式,它非常易于使用,不需要绑定.
绑定的问题是许多隐式操作; 如果出现意外情况,这些帮助很难理解,只有少数开发人员可以在第三方绑定链中调试和解决问题.
但在过去的三年里,我工作的项目中的程序员实际上遇到了问题.所以我倾向于说绑定不再是一个大问题.
如果您的应用程序很琐碎,那么您是否进行绑定或是否一一编写侦听器实际上并不重要。
如果您的应用程序在几个人月内取得了进展,那么在事后引入绑定会带来一些痛苦。几乎所有(有用的)技术都是如此。大量的痛苦可能来自于你之前认为理所当然的混乱。
如果正确使用绑定,您可能会获得 gui 和 gui 行为的完全分离。这又意味着
如果您尝试在没有绑定框架的情况下达到相同的目标,您最终将编写自己的绑定框架。
恕我直言,Java 世界中的绑定存在一个严重的问题。它迫使您使用 PropertyChangeSupport 编写 getter + setter,这是乏味且容易出错的。我没有看到在 Java 中修复它的现实方法,但其他语言(例如 Scala)在这里提供了有趣的机会。如果您有兴趣,请参阅我的上一篇博客文章:http://blog.schauderhaft.de/2011/05/01/binding-scala-objects-to-swing-components/