簡體   English   中英

帶有Observer / Observable的Java MVC模式

[英]Java MVC-pattern with Observer/Observable

問候,

我在我正在構建的應用程序中遇到了問題。為了給出我正在使用的場景。我有這兩個控制器都繼承了從主控制器初始化的相同模型。 所有控制器都有自己的視圖,但我只有一個模型。

問題在於。 當模型發生變化時。 如何通知另一個控制器(來自兩個控制器)發生了更新? 我要使用Observer / Observable或PropertyChangeEvent? 如何,我對MVC架構上的實現有點困惑。

您對此事的回復表示高度贊賞。

謝謝,Cyril H.

我有一個類似的情況,我使用PropertyChangeSupport來聽取模型的變化。 and a protected method . 我相信最好的方法是創建一個AbstractEntity,它包含一個私有的PropertyChangeSupport和兩個公共方法和一個受保護的方法 這些方法將用作PropertyChangeSupport的包裝器。 所以你的控制器應該只是addPropertyListeners來聽取常見模型的變化。

注意:

  • 您應該在所有控制器中使用相同的模型實例。
  • 您需要的類如下:

  • java.beans.PropertyChangeSupport
  • 的java.beans.PropertyChangeListener

  • 示例代碼如何

     public void setValue(String value){ String oldValue=getValue(); this.value=value; firePropertyChange("value",oldValue,getValue()); } 

  • 你的控制者應該只聽模型。 (PropertyChange或其他)。 你為什么要讓你的控制者通知自己?

    如果它是您要通知的主控制器,也應該只聽模型。 初始化模型本身不是嗎?

    我沒有看到任何問題,

    • 讓你的模型observable ,並且
    • 你的控制者/觀察者

    或者介紹一個listener ,如果前者聽起來不好聽。

    暫無
    暫無

    聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM