簡體   English   中英

使用觀察者模式是否合適?

[英]Is it appropriate to use the Observer Pattern?

支持我有一個Java Bean類,它嚴格保存實例字段:

class College 
{
     building = "Burruss";
     dean = "Mr. Bergess";
     schools[] String = {"College of Engineering", "Business School"};
     valedictorian = "Mr. Smart Guy";
     ...
     ...
     ...
}

假設對於College實例中的每個更改,都會發送一條消息:

class messageSender
{
       ... if (College values have changed)
              Send that instance's fields in byte[] form
}

假設我有一個Swing GUI(Java),它也檢查College中的更改

class myGUI
{
      ... if (College values have changed)
              Alert each individual JTextField the updated field
}

觀察者模式在這里有用嗎? 如果大學有1000個變量,那么每次實例字段值更改時,我都必須包括一個“ notifyObservers()”方法!

例如,對於這1000個變量,我有1000個setter方法。 然后,每個setter方法都必須有一個notifyObservers()調用。

這是對的還是有更好的方法?

如果您的班級有1000個字段,那么您可能會遇到其他更相關的設計問題。

您的每種字段更改方法(設置程序)都調用notifyObservers()並不異常。 您可能想要嘗試封裝盡可能多的狀態和邏輯; 信息隱藏只是很好的設計。

我認為Observer在這里可以,但是Listener更好,因為1.您可以創建幾種類型的偵聽器2.當事件發生時,將其傳遞給偵聽器的處理程序方法,以便可以知道真正發生了什么。 例如,它可能包含Mark的注釋中提到的1000個字段之一。

暫無
暫無

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

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