背景
我在Web应用程序方面拥有丰富的经验,但我对RCP的经验很少或根本没有。目前,我正在使用Java Swing API。一切都是好的。唯一的问题是,我对我的设计并不十分自信。
问题:
在我们实施MVC的Web应用程序中,我们将请求转发给View
。 Controller
并不关心在何处展示它。通常,一切都将显示在页面上。但是在RCP中,我们需要知道在哪里显示这个表单/ table / etc.我的意思是哪个面板,向右或向左,向上或向下。这需要引用我们希望展示该东西的容器组件。我们应该如何设计代码以获得该引用?
径:
我将继续引用主类中的所有第一级组件 - 具有main()
方法。然后,无论我需要哪些组件,我都会做类似的事情,
JPanel formPanel = MainApp.getMainPanel().getFormPanel();
..
JPanel treePanel = MainApp.getMainPanel().getTreePanel();
可以吗?
答案 0 :(得分:2)
MVC在RCP中并不是那么重要,人们谈论它,但很大程度上是废话。
确保您的业务对象模型是独立的并且不依赖于任何UI代码非常重要。但是视图和控制器之间的界限往往更加模糊,我不会太过分了。
用户界面元素自然倾向于像您一样在树中组织,但应避免使用诸如主面板之类的全局变量。
严重依赖观察者模式。
答案 1 :(得分:1)
A Swing Architecture Overview详细阐述了Swing的separable model architecture。我发现这个概念有助于理解常用的Swing组件,以及JFreeChart
等常用工具。