觀察者模式中的觀察者是否總是需要觀察相同類型的對象?一個觀察者觀察不同類型的不同類型的完全不相關的對象是否可以?Java中的觀察者模式 - 觀察者觀察不同的,不相關的類型或類?
示例 - Observer是CarDashBoard和Observable(s)是FuelTank,車速表,EngineThermometer,CarBattery等。觀察到的參數分別爲fuelLevel,speed,temperatureOfEngine,powerLevel。
如果我觀察多個不相關類型,那麼我將不得不使用instanceof()方法來檢查哪個通知的觀察者可觀察到的類。然而,看起來這是根據這個鏈接一個不錯的辦法 - http://www.javapractices.com/topic/TopicAction.do?Id=31
相關的instanceof另一個鏈接 - http://blog.joda.org/2007/01/java-language-dynamic-instanceof_7967.html
所以,我想我會使用的getClass()方法,然後再決定是什麼根據通過的Observable執行的操作。爲此目的使用getClass()是否安全?
有沒有其他的選擇?
由於與'instanceof'相同的原因,'getClass()'是一個不好的方法。 –
@MattBall - 請告訴我爲什麼getClass()會不好?我可以理解,instanceof()很糟糕,但不是爲什麼getClass會不好。 – SuperStar
我的問題讓我懷疑Oracle的觀察者和觀察者的實現是否糟糕。你怎麼看 ? – SuperStar