问候,

我正在构建的应用程序中有问题。
给我一个场景。
我有这两个控制器都从主控制器继承相同的模型初始化。
所有控制器都有其视图,但是我只有一个模型。

问题在于。每当该模型发生更改时。
如何通知另一个控制器(从两个控制器)发生了更新?
我打算使用Observer / Observable或PropertyChangeEvent吗?以及如何在MVC架构上实现这两者上我有些困惑。

非常感谢您对此事的回应。

谢谢,
西里尔·H。

最佳答案

我有一个类似的案例,其中我使用PropertyChangeSupport来监听模型的更改。我认为最好的方法是创建一个包含一个私有PropertyChangeSupport和两个公共方法addPropertyListener,removePropertyListener和一个受保护的方法firePropertyChange的AbstractEntity。这些方法将用作PropertyChangeSupport方法的包装。因此,您的控制器应只添加addPropertyListeners以便侦听通用模型的更改。

注意:

  • 您应该在所有控制器上使用相同的模型实例。
  • 您需要的类如下:

  • java.beans.PropertyChangeSupport
  • java.beans.PropertyChangeListener
  • 示例代码如何
    public void setValue(String value){
          String oldValue=getValue();
          this.value=value;
          firePropertyChange("value",oldValue,getValue());
    }
    

  • 09-16 08:24