[英]Java Data binding best practices
即使我不是Java新手,我也只是在学校/大学环境中使用它,所以我不知道企业中使用的所有最佳实践。
特别是我现在正在开发一个Java桌面应用程序(在UI层使用Swing),我对使用swing组件进行数据绑定的最佳实践特别感兴趣。
例如,我可以在模型层有一个模型对象列表,我需要在JTable中显示它们。 然后,当选择JTable的单行时,我需要在一些JLabel上显示与所选行对应的模型对象的一些信息。
我应该使用哪些库? 这样做的最佳做法是什么?
我正在寻找一些链接/文章/教程(/书籍?)来深入研究这个主题,并了解各种解决方案的优缺点。
对于您给出的具体示例,我建议采用以下方法:
List<Model>
,其中List
实现支持RandomAccess
(例如ArrayList
)。 AbstractTableModel
并覆盖getValueAt(int row, int col)
以索引到List<Model>
并检索相应的Model
实例。 然后返回要绑定到column: col
的特定属性。 总的来说,在涉及数据绑定而不是使用框架时,我会自己动手。 对于编辑器样式的面板,我通常实现三个方法: initialise()
, commit()
和clear()
,其中initialise
采用正在编辑的域对象的实例, commit
应用任何更改并返回域对象的修改实例,以及clear
清除所有UI组件值或将其设置回默认值。
始终打开应用程序进行扩展,并牢记耦合因素。 我的意思是你应该将所有数据模型存储在不同的数据结构中,而不管UI层(Swing组件)。 您应该尝试使用单独的松散耦合(具有单独的数据提供程序包)数据结构,该数据结构将为您提供所需的所有值。 一旦设计到位,您就可以开始担心UI绑定了。
拥有一个简洁的UI IDE(如Netbeans),用于与swing相关的开发。 总是去布局 。 布局一开始很难设计,但是一旦你开始使用布局,它将非常有用和方便。 你将进一步了解Swing和当然Swingworkers的听众。 做一个谷歌,你会发现这些非常好的资源。
我不知道摆动很好,但你有没有尝试过模型gui mediator模式? 适用于所有语言和任何gui组件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.