UI 应用程序架构的想法

发布于 2024-11-16 23:12:26 字数 722 浏览 2 评论 0 原文

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

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

我的问题是关于应用程序的架构。 我不知道如何制定良好的设计架构以便正确组织代码。

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

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

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

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

4- ...?

在您看来,哪一种是最佳实践? 您知道我在哪里可以找到有关此类桌面应用程序设计的示例/文档吗?

提前致谢,

弗卢米尼斯

I'm writing my first desktop Java application in standalone SWT/JFace (I don't want to use RCP) ; but it's not a problem of language so don't focus on the technology I use.

Just to explain in few words what does the software, the main window have a tab folder, each tab item represent a file the user can edit. A file is represented by a structured viewer. The application have menus and toolbars. There is a context menu in the tab item.

My question is on the architecture of the application.
I don't know how to make a good design architecture so that the code is correctly organised.

Each actions (in menus, in context menus and in toolbar) could change the content of the selected tab item so I don't know what to do :

1- the tab item expose a lot of public method which are called by all the actions ? So the tab item will have a lot of functionalities :
example : the add new line menu action in the menu or the context menu just calls the addNewLine() method of the tab item ?

2- a class that acts as a controller, manages the tab folder and all the tab items and expose a lot of public methods.
example : the open File menu action call the openFile() method on the controller, the add new line action calls the controller that knows the active tab and add the line where it is needed.

3- each action is a concrete class and just call as little method as possible on the tab item to refresh the UI.
example : the open file menu action has the logic to open the "open file dialog", to read the file data and called something like addNewTab(ApplicationObject my object) directly on the UI components

4- ... ?

In your point of view, which one is the best practice ?
Do you know where I can find example / documentation on design for a desktop application like this ?

Thanks in advance,

Fluminis

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

携君以终年 2024-11-23 23:12:26

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

I suggest you to read how to design event base applications (could be Java, Android, Flash or VB.Net) and a concrete resource is the book Growing Object-Oriented Software. In that book, the authors explain how to build and test a Swing application, and the design they use is perfect (from my point of view, of course).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文