
510
12
章
カモオブザーバ
public interface QuackObservable {
public void registerObserver(Observer observer);
public void notifyObservers();
}
public interface Quackable extends QuackObservable {
public void quack();
}
14
まずサブジェクト用のインタフェースが必要です。
サブジェクトは監視されるオブジェクトでしたね。サブジェクトをもっと覚えやすい名前にしましょう。
Observable
はどうでしょうか?
Observable
には、オブザーバの登録と通知を行うメソッドが必要です。
オブザーバを削除するメソッドも必要でしたが、シンプルな実装にしておきたいので、削除メソッドは
除外します。
カモの鳴き声学者は個々のカモの振る舞いを監視したいようです。オブジェク
トの振る舞いを監視するための
Observer
パターンの出番です。
QuackObservable
は、
Quackable
を
監視したい場合に
Quackable
が実装すべ
きインタフェースです。
オブザーバに通知するメ
ソッドもあります。
オブザーバを登録するメソッドを持
ちます。
Observer
インタフェースを
実装するオブジェクトはカモの鳴き
声を監視できます。
Observer
インタ
フェースをすぐ後で定義します。
次に、すべての
Quackable
が必ずこのインタフェースを実装する必要があります。 ...