将模型对象传递给java swing MVC中的对象是不是很好的设计模式?

时间:2017-10-04 16:59:28

标签: java swing model-view-controller

我上课matlab

Model

我有一个控制器,它是动作监听器:

class Model {
Object[][] objects=new Object[3][];
}

但我担心如果我将对象数组传递给class MyListener implements ActionListener { public void actionPerformed(ActionEvent a){ //here I have to get objects array from Model and pass it to view to display } } ,它会在以后引起问题。

JPanel还有另一种方法可以使用JPanel吗?

1 个答案:

答案 0 :(得分:0)

Haven没有触及Swing很长一段时间,但仍然:JPanel并不真正需要任何类型的模型对象,它只是一个可以聚合其他小部件的小部件。通常,将模型传递给可以实际显示某些内容的小部件是有意义的,例如textArea,textField,tables等。

在swing的MVC模型实现中,Components通过侦听器对某些事件做出反应,既可以作为视图(显然)也可以作为控制器。

无论如何,以下规则适用:

  • 控制器更改模型
  • 观看次数为"已订阅"对模型的改变。通常,它在摆动本身的组件的内部模型中实现,但您可以扩展它们并定义您的行为。一旦模型被控制器改变,它就会向视图发出特殊事件,例如"嘿,我改变了#34;。
  • 模型通常与视图松散耦合。
  • 视图会对这些事件做出反应并应用更改(通常会重新绘制新数据)。

从你的问题来看,有人很难说当有人改变模型时会发生什么(没有足够的信息)。