
疎結合の威力
2
つのオブジェクトが疎結合であると、互いにやり取りできますが、通常は相手についてほとん
ど知る必要ありません。後にわかるように、疎結合設計にはたいてい高い柔軟性があります(すぐ
に詳しく説明します)。つまり、
Observer
パターンは疎結合のよい例なのです。
Observer
パターン
が疎結合を実現する理由を確認しましょう。
疎結合設計はオブジェクト間の相互依存を最小限にするため、変更
に対応できる柔軟な
OO
システムを構築できます。
この中に何
種類の変更
を見つけら
れますか?
第一に、サブジェクトがオブザーバについてわかっていることと言えば、オブザーバがある特定の
インタフェース(Observerインタフェース)を実装しているということだけ。
サブジェクトはオブザーバの具象クラス、その振る舞い、またはオブザーバに関するその他すべて
については知る必要がありません。
新しいオブザーバをいつでも追加できる。
サブジェクトが依存しているのは
Observer
インタフェースを実装するオブジェクトのリストだけな
ので、必要なときにいつでも新しいオブザーバを追加できます。実際、実行時に任意のオブザーバ
を別のオブザーバに置換でき、そうしてもサブジェクトには何も問題ありません。同様に、いつで
もオブザーバを削除できます。
新しい種類のオブザーバを追加するのに、サブジェクトを変更する必要は全くない。
オブザーバになる必要がある新しい具象クラスが現れたとしましょう。新しいクラス型に対応する
ためにサブジェクトを変更する必要は全くなく、新しいクラスで ...