Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture UI应用程序体系结构的构想_Architecture_Class Design_Desktop Application - Fatal编程技术网

Architecture UI应用程序体系结构的构想

Architecture UI应用程序体系结构的构想,architecture,class-design,desktop-application,Architecture,Class Design,Desktop Application,我正在用独立的SWT/JFace编写我的第一个桌面Java应用程序(我不想使用RCP);但这不是语言的问题,所以不要关注我使用的技术 只需简单地解释一下软件是什么,主窗口有一个选项卡文件夹,每个选项卡项代表一个用户可以编辑的文件。文件由结构化查看器表示。该应用程序具有菜单和工具栏。选项卡项中有一个上下文菜单 我的问题是关于应用程序的体系结构。 我不知道如何创建一个好的设计架构,以便正确组织代码 每个操作(在菜单、上下文菜单和工具栏中)都可能更改所选选项卡项的内容,因此我不知道该怎么做: 1-选项

我正在用独立的SWT/JFace编写我的第一个桌面Java应用程序(我不想使用RCP);但这不是语言的问题,所以不要关注我使用的技术

只需简单地解释一下软件是什么,主窗口有一个选项卡文件夹,每个选项卡项代表一个用户可以编辑的文件。文件由结构化查看器表示。该应用程序具有菜单和工具栏。选项卡项中有一个上下文菜单

我的问题是关于应用程序的体系结构。 我不知道如何创建一个好的设计架构,以便正确组织代码

每个操作(在菜单、上下文菜单和工具栏中)都可能更改所选选项卡项的内容,因此我不知道该怎么做:

1-选项卡项公开了许多由所有操作调用的公共方法?因此,选项卡项将具有许多功能: 示例:菜单或上下文菜单中的添加新行菜单操作只是调用选项卡项的addNewLine()方法

2-一个充当控制器的类,管理选项卡文件夹和所有选项卡项,并公开许多公共方法。 示例:打开文件菜单操作调用控制器上的openFile()方法,添加新行操作调用知道活动选项卡的控制器,并在需要的位置添加行

3-每个操作都是一个具体的类,只需在选项卡项上调用尽可能少的方法即可刷新UI。 示例:“打开文件”菜单操作具有打开“打开文件对话框”的逻辑,可以直接在UI组件上读取文件数据并调用addNewTab(ApplicationObject my object)之类的内容

4-

在你看来,哪一个是最佳实践? 你知道我在哪里可以找到这样的桌面应用程序的设计示例/文档吗

提前感谢,


Fluminis

我建议您阅读如何设计基于事件的应用程序(可以是Java、Android、Flash或VB.Net),具体的资源是这本书。在那本书中,作者解释了如何构建和测试Swing应用程序,他们使用的设计是完美的(当然,从我的角度来看)