Java应用程序代码结构

时间:2010-10-29 17:25:37

标签: java database swing appframework

我的Java应用程序不是很大,但我想以“正确的方式”做到这一点。寻找建议不要弄得一团糟......

我正在使用Swing,Swing应用程序框架和H2数据库。

这是一个具有不同标签的单帧应用程序。大多数选项卡将反映数据库中数据的某些方面。他们中的一些人将能够改变它。一些选项卡将具有将重定向到另一个选项卡的按钮或操作......基本上就是它。

我希望保持干净,相当便携和灵活(例如,可以启用禁用某些标签或轻松添加一些标签)。

以下是问题:

1)当数据库内容发生变化时,如何让“刷新”选项卡?实现一些Listener接口?我应该定义那个接口还是已经存在的东西我可以重用?

2)如何将不同的标签“链接”在一起,以便很容易从一个标签跳到另一个标签(并且可能需要携带一些参数来将目标标签设置到右侧“视图”)

3)如果我在应用程序的另一部分中使用某些过滤器设置了一些首选项,我该如何与整个应用程序共享这些设置?

当我问“怎么做”时,我的意思是“什么是最好的方式”...我已经可以让它工作了......只是寻找合适的工具来使用,设计模式等。

3 个答案:

答案 0 :(得分:2)

gui应用程序构建有不同的策略。 Here一些关于。

的文章

答案 1 :(得分:1)

如果使用swing,则可以使用选项卡式窗格来制作表格布局。

实施一个监听器(按照您的计划)。看看Java中的可观察接口。

您可以实现一个单例(例如PreferenceManager类)来保存首选项并在整个应用程序中访问它以访问属性。

答案 2 :(得分:0)

你真的想要一个推送模型,服务器必须保持与每个客户端的连接,然后在发生任何变化时更新它们吗?这对于少数客户来说是可行的,但很快就会出现问题。使用拉模型可能更好,客户端手动(定期?)请求更新。这也是在DB中使用last_modified字段进行乐观锁定的好方法。尝试更新,如果自上次重新加载后更新,则警告用户并允许他们覆盖/合并。

至于Swing,一般来说,最佳做法是将与GUI无关的所有内容都分解为引发事件的核心类(“业务逻辑”)。将所有Swing类注册为相应的事件监听器并相应地更新gui(SwingUtilities.invokeLater()是您的朋友)。