背景:
我在 web 应用程序方面有丰富的经验,但我对 RCP 的经验很少或没有。目前,我正在使用 Java Swing API。一切都很好。唯一的问题是,我对自己的设计不太自信。
问题:
在 Web 应用程序中,当我们实现 MVC 时,我们将请求转发到 View
。 Controller
不关心在哪里显示它。通常,所有内容都将显示在页面上。但是在 RCP 中,我们需要知道在哪里显示这个表格/表格/等等。我的意思是哪个面板,右或左,上或下。这需要引用我们希望在其中显示事物的容器组件。我们应该如何设计我们的代码来获取该引用?
采取:
我一直在引用主类中的所有第一级组件——它们具有 main()
方法。然后无论我需要什么组件,我都会做类似的事情,
JPanel formPanel = MainApp.getMainPanel().getFormPanel();
..
JPanel treePanel = MainApp.getMainPanel().getTreePanel();
还好吗?
最佳答案
MVC 在 RCP 中并不是真正重要的东西,人们谈论它但主要是胡说八道。
毫无疑问,拥有一个独立且不依赖于任何 UI 代码的业务对象模型非常重要。但是 Views 和 Controllers 之间的界限往往更加模糊,我不会担心太多。
用户界面元素自然倾向于像您一样组织在树中,但应避免使用诸如主面板之类的全局变量。
严重依赖观察者模式。
关于java - 富客户端 UI 的设计建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5829335/