
Observerパターンでは、あるオブジェクトの状態が変化
すると、そのオブジェクトに依存しているすべてのオブ
ジェクトに自動的に通知され更新されるようにするとい
う、オブジェクト間の
1
対多の依存関係が定義されている。
Observer
パターンの定義
Observer
パターンをイメージするには、発行者と購読者のいる新
聞の定期購読を思い浮かべるとよいでしょう。
しかし実際の世界では、一般的に
Observer
パターンは以下のよう
に定義されています。
サブジェクトとオブザーバは
1
対多の関係を定義します。1つのサブジェ
クトは、サブジェクトはサブジェクト内に何か変化があると多数のオブザー
バに通知を行います。サブジェクトの状態に変化があるとオブザーバに通
知されるため、オブザーバはサブジェクトに依存しています。
後にわかるように、
Observer
パターンの実装にはいくつかの異なる方法
がありますが、ほとんどの方法は
Subject
インタフェースと
Observer
インタ
フェースを含むクラス設計を中心としています。
Observer
パターンでは一連のオ
ブジェクトの間に
1
対多の関係
が定義されている。
あるオブジェクトの状態が変化
すると、そのオブジェクトに依
存するすべてのオブジェクトに
通知される。
この定義とこれまでこのパターンについて考えてきたことを関連
付けてみましょう。
S
u
b
j
e
c
t
オ
ブ
ジ
ェ
ク
ト
8
int
D
o
g
オ
ブ
ジ
ェ
ク
ト
M
o
u
s
e
オ
ブ
ジ
ェ
ク
ト
C
a
t
オ
ブ
ジ
ェ
ク
ト
D
u
c
k
オ
ブ
ジ
ェ
ク
ト
オブザーバ
8
8
8
8
1
対多の関係 ...