1

当您创建视图(在本例中为 Swing 面板)时,您会添加多个组件,例如按钮、标签、文本字段等。

然后你就有了这个视图的控制器。该视图将被控制器用于不同的模型。每个模型都需要启用/禁用不同的组件(并非所有组件都应该始终处于活动状态)。到目前为止,我所做的是在名为 example 的视图中创建一个方法:carMode()它在视图中进行所需的配置,并根据某些条件在控制器中调用此方法。

控制器代码:

if (something == car) { view.carMode() }

但是,有时您需要查看多个不同的状态,我想知道这种方法是否可以用更好的方法代替?

4

2 回答 2

1

考虑使用一个enum元素实现一个通用接口来实现策略模式。您可以让每个元素直接实现接口,如 oulined here,或者让每个元素都有一个实现接口的实例变量,如此处所示。要操作视图,具体的实现可以做以下任何事情:

  • 通过启用和禁用组件来配置单个面板。

  • 在 中选择特定面板CardLayout

  • 导航到JTabbedPane.

于 2013-03-08T12:50:42.807 回答
0

更好的方法是通用视图。创建一个 viewBase 类,其中包含可以在视图之间共享的东西。然后创建专门的视图。每种模式一个。控制器可以初始化特定视图。

if(sometin == car) { view = new CarView()}

第二个优点是您在特定文件中拥有特定视图的内容。这更灵活,更简单

于 2013-03-08T09:55:25.883 回答