Observer パターン
イベントを通知するオブジェクト側のインタフェース。1つ以上のObserverすなわちイベントを通知されるオブジェクト側のインタフェースの登録・削除・通知のメソッド書式の体裁を提供する。
以下の抽象メソッドを持つ:
addObserver() - Subjectが持つ「通知を受け取るObserver群」に、新たなObserverを加える。
removeObserver() - addObserver()で追加されたオブジェクトを削除する。
notifyObservers() - Subjectが持つ「通知を受け取るObserver群」に、Observer.notify() を呼んでイベントを通知する。
上のUMLクラス図では、Subjectがインタフェースと実装クラスに分かれているが、パターン要件ではない。インタフェースを使わずクラスを直接実装することもある。