【发布时间】:2011-06-23 11:59:21
【问题描述】:
我正在用独立的 SWT/JFace 编写我的第一个桌面 Java 应用程序(我不想使用 RCP);但这不是语言的问题,所以不要专注于我使用的技术。
简单解释一下这个软件是什么,主窗口有一个tab文件夹,每个tab项代表一个用户可以编辑的文件。文件由结构化查看器表示。该应用程序具有菜单和工具栏。选项卡项中有一个上下文菜单。
我的问题是关于应用程序的架构。 我不知道如何制作一个好的设计架构,以便正确组织代码。
每个操作(在菜单、上下文菜单和工具栏中)都可以更改所选选项卡项的内容,所以我不知道该怎么做:
1- 选项卡项暴露了许多被所有操作调用的公共方法?所以标签项将有很多功能: 示例:菜单或上下文菜单中的添加新行菜单操作只是调用选项卡项的 addNewLine() 方法?
2- 一个充当控制器的类,管理选项卡文件夹和所有选项卡项,并公开许多公共方法。 示例:打开文件菜单操作调用控制器上的 openFile() 方法,添加新行操作调用知道活动选项卡的控制器并在需要的位置添加行。
3- 每个动作都是一个具体的类,只需在选项卡项上调用尽可能少的方法来刷新 UI。 示例:打开文件菜单操作具有打开“打开文件对话框”、读取文件数据并直接在 UI 组件上调用类似 addNewTab(ApplicationObject my object) 的逻辑
4- ... ?
在您看来,哪一个是最佳实践? 你知道我在哪里可以找到这样的桌面应用程序设计的示例/文档吗?
提前致谢,
弗鲁米斯
【问题讨论】:
标签: architecture class-design desktop-application