创建视图时(在本例中为Swing面板),您可以添加多个组件,如按钮,标签,文本字段等。
然后你有一个这个视图的控制器。控制器将为不同型号使用该视图。每个模型都需要启用/禁用不同的组件(并非所有组件都应始终处于活动状态)。我到目前为止所做的是在名为example carMode()
的视图中创建一个方法,该方法在视图中执行所需的配置,并且我在控制器中根据某些条件调用此方法。
控制器代码:
if (something == car) { view.carMode() }
但是,有时您需要多个不同的状态才能查看,我想知道这种方法是否可以被更好的方法取代?
答案 0 :(得分:1)
考虑使用enum
,其中元素实现公共接口以实现strategy pattern。您可以让每个元素直接实现接口,如oulined here,或者让每个元素都有一个实现接口的实例变量,如图here所示。要操纵视图,具体实现可以执行以下任何操作:
通过启用和禁用组件来配置单个面板。
在CardLayout
。
导航至JTabbedPane
。
答案 1 :(得分:0)
更好的方法是通用视图。创建一个viewBase类,它包含可以在视图之间共享的东西。然后创建专门的视图。每种模式一个。 控制器可以初始化specefic视图。
if(sometin == car) { view = new CarView()}
第二个优点是你有specefic文件中的specefic视图的东西。这更灵活,更简单