あるオブジェクトが、別のオブジェクトに依存して動くようにするしくみ。因果関係というか。。。
まったく別のオブジェクトに自動的にメッセージを送ってくれる。
具体的にはMVCのモデル(M)のオブジェクトになにか変化があったとき、モデルのオブジェクトに「変更しましたよ」とメッセージを送ると、あらかじめ「依存しているオブジェクト」として登録してあるオブジェクト(だいたいビュー(V)のオブジェクト)に「更新されましたよ」とメッセージがくる。
直接ハードコーディングでモデルからビューに伝えないところがミソ。ビューは簡単に差し替え可能なのだ。依存しているオブジェクトも簡単に増減できる。
プログラムが完成してからのカスタマイズにも強いけど、まだプログラム仕様がしっかりしていない段階でのプロトタイピングでも威力を発揮する。