observer パターン。JDK ではよく使われているパターンらしい。
ばっちり覚えよー。
Java では Java.util の中に Observer インターフェースと
Observable クラスがある。これらを使って Observer パターンを
実装することができる。けど、まずは Observer パターンの
基本的な考え方。まとめてみた。
Observer パターンは、オブジェクト間を 一対多の依存関係で構成する。
一の方はサブジェクト(Subject)と呼び、多の方はオブザーバ(Observer)と呼ぶ。
Observer パターンではこの上にモデルを構築してる。そのモデルは以下。
オブザーバを(時にはサブジェクトを)簡単に追加したり削除したりするには、
インターフェースを作る。Strategy パターンにもでてきたインターフェース。
汎化で考えるなら、オブザーバ(サブジェクト)になりうるものを汎化したものを作るってことだけど
…そんな無理に考える必要もないな。インターフェースでいいや。
これが Observer パターン。覚えられない…そんな時は新聞の定期購読の仕組みを
覚える。Observer パターンの例でよく使われている。イメージするには最適だと思う。
ばっちり覚えよー。
Java では Java.util の中に Observer インターフェースと
Observable クラスがある。これらを使って Observer パターンを
実装することができる。けど、まずは Observer パターンの
基本的な考え方。まとめてみた。
Observer パターンは、オブジェクト間を 一対多の依存関係で構成する。
一の方はサブジェクト(Subject)と呼び、多の方はオブザーバ(Observer)と呼ぶ。
Observer パターンではこの上にモデルを構築してる。そのモデルは以下。
- あるオブジェクトがオブザーバになりたいなら、その旨をサブジェクトに 伝える。サブジェクトはそのオブジェクトをオブザーバとして登録
- あるオブジェクトがオブザーバであることをやめたいなら、その旨をサブジェクトに 伝える。サブジェクトはそのオブジェクトの登録を削除
- サブジェクトの状態が変化したら、サブジェクトは登録されているオブザーバに通知
- オブザーバはサブジェクトから通知を受けたら通知内容に応じて更新
オブザーバを(時にはサブジェクトを)簡単に追加したり削除したりするには、
インターフェースを作る。Strategy パターンにもでてきたインターフェース。
汎化で考えるなら、オブザーバ(サブジェクト)になりうるものを汎化したものを作るってことだけど
…そんな無理に考える必要もないな。インターフェースでいいや。
これが Observer パターン。覚えられない…そんな時は新聞の定期購読の仕組みを
覚える。Observer パターンの例でよく使われている。イメージするには最適だと思う。