我在独立的SWT / JFace中编写我的第一个桌面Java应用程序(我不想使用RCP);但这不是语言问题,所以不要专注于我使用的技术。
只需用几句话来解释软件是什么,主窗口有一个标签文件夹,每个标签项代表一个用户可以编辑的文件。文件由结构化查看器表示。该应用程序具有菜单和工具栏。标签项中有一个上下文菜单。
我的问题是关于应用程序的体系结构。 我不知道如何建立一个好的设计架构,以便正确组织代码。
每个操作(在菜单,上下文菜单和工具栏中)都可以更改所选标签项的内容,因此我不知道该怎么做:
1-标签项公开了很多被所有动作调用的公共方法?因此标签项将具有许多功能: 示例:在菜单或上下文菜单中添加新行菜单操作只调用选项卡项的addNewLine()方法?
2-作为控制器的类,管理选项卡文件夹和所有选项卡项,并公开许多公共方法。 示例:打开文件菜单操作调用控制器上的openFile()方法,添加新行操作调用知道活动选项卡的控制器并添加需要它的行。
3-每个动作都是一个具体的类,只需在选项卡项上调用尽可能少的方法来刷新UI。 示例:打开文件菜单操作具有打开“打开文件对话框”的逻辑,读取文件数据并直接在UI组件上调用addNewTab(ApplicationObject my object)
4- ......?
在您看来,哪一个是最佳做法? 你知道在哪里可以找到像这样的桌面应用程序的设计示例/文档吗?
提前致谢,
Fluminis
答案 0 :(得分:0)
我建议您阅读如何设计事件基础应用程序(可能是Java,Android,Flash或VB.Net),具体资源是书籍Growing Object-Oriented Software。在那本书中,作者解释了如何构建和测试Swing应用程序,他们使用的设计是完美的(当然,从我的观点来看)。