觀察者模式
觀察者模式,顧名思義,它的使用場景是,當某個位置(Subject,主題)的狀態發生變化時,其它多個點(Observers,觀察者)需要隨之更新。每個 Observer 都必須分別注冊到這個 Subject。Subject 也會提供一些方法注銷觀察者。已注冊的觀察者會在主題狀態發生變化的時候收到由“通知”方法發出的通知。通常是這樣。
這里我們提出一個示例,StockBroker 應用,它涉及維護各種類型的金融信息。Subject 是應用程序中的接口,它為 Observred 類提供樣板。StockData 是 Subject 的一個具體實現,它實現了 addObserver()、removeObserver() 和 otifyObservers()。另外,它還維護著一個已注冊觀察者的列表。IncomeHandler, InvestmentHandler 和?PortfolioHandler 包含各種觀察者,分別用于維護指定 StockBroker 的收入、投資和證券。
所有這些都取決于不斷波動的股票價值。它們特別關心每支股票的 stockSymbol、stockValue 和 stockUnits。每個觀察者都實現 Observer 接口,這個接口約定了 update() 方法,由每個具體的類實現。
使用 StockBroker.java 來運行應用程序。你可以試著在應用中加入自己的 Observer,這樣你可以嘗試從 Web 服務中獲得這些值并據此寫一個自己的觀察者。