あるオブジェクトが、別のオブジェクトに依存して動くようにするしくみ。因果関係というか。。。
まったく別のオブジェクトに自動的にメッセージを送ってくれる。
具体的にはMVCのモデル(M)のオブジェクトになにか変化があったとき、モデルのオブジェクトに「変更しましたよ」とメッセージを送ると、あらかじめ「依存しているオブジェクト」として登録してあるオブジェクト(だいたいビュー(V)のオブジェクト)に「更新されましたよ」とメッセージがくる。
直接ハードコーディングでモデルからビューに伝えないところがミソ。ビューは簡単に差し替え可能なのだ。依存しているオブジェクトも簡単に増減できる。
プログラムが完成してからのカスタマイズにも強いけど、まだプログラム仕様がしっかりしていない段階でのプロトタイピングでも威力を発揮する。
モノシリックなアプリケーションを分散アーキテクチャに移行する際には次の3つの質問に答えられる様にしておく必要がある。 既存のアプリケーションは分解可能なのか? 必要なのはコードの書き直しなのか?それともリファクタリングなのか? 移行にかかる費用はどれくらいなのか? 例えば、CIOから次の様に質問が飛んで来るかもしれない 複雑なモノシリックアプリケーションをマイクロサービスにする移行作業にて、プロジェクトの初日CIOに次のことを尋ねられた。 「このプロジェクトの移行作業はゴルフボールサイズなのか?バスケットボールサイズなのか?旅客機サイズなのか?」 このときに、私はその質問に答えられなかったが、…