问候,
我正在构建我的应用程序中的问题。 给出我所处的场景。 我有这两个控制器都继承了从主控制器初始化的相同模型。 所有控制器都有自己的视图,但我只有一个模型。
问题在于。当模型发生变化时。 如何通知另一个控制器(来自两个控制器)发生了更新? 我要使用Observer / Observable或PropertyChangeEvent?如何,我对MVC架构上的实现感到有些困惑。
您对此事的回复表示高度赞赏。
谢谢, Cyril H。
答案 0 :(得分:2)
我有一个类似的情况,我使用PropertyChangeSupport来收听模型的变化。我认为最好的方法是创建一个包含私有 PropertyChangeSupport 的AbstractEntity和两个公共方法 addPropertyListener,removePropertyListener 和一个受保护的方法 的firePropertyChange 的。这些方法将用作PropertyChangeSupport的包装器。所以你的控制器应该只是addPropertyListeners来听取常见模型的变化。
注意:
的示例代码
public void setValue(String value){
String oldValue=getValue();
this.value=value;
firePropertyChange("value",oldValue,getValue());
}
答案 1 :(得分:1)
你的控制者应该只听模型。 (PropertyChange或其他)。你为什么要让你的控制者通知自己?
如果它是您想要通知它的主控制器,也应该只听模型。是不是它自己初始化模型?
答案 2 :(得分:1)
我没有看到任何问题,
observable
和或者如果前者听起来不合适,请引入listener
。