观察者模式
观察者模式,顾名思义,它的使用场景是,当某个位置(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 服务中获得这些值并据此写一个自己的观察者。