疎結合

loose-coupling.png

low coupling
クラスは単純なインタフェイスを持ち、関係のないクラスとは出来るだけ
話さないようにすべき。
相互にやり取りするオブジェクト間には、疎結合設計を使用するようにする

定義

互いのオブジェクトのやりとりをなるべく少なくなるように設計すること。
やりとりするとしても、一方通行が望ましい。

  • 各クラスは、1つの機能に集中し、最小限のインタフェースで構成されている
  • お互いメッセージを送りながら複雑なシステムを構築する

2つのオブジェクトが疎結合であると、それらは互いにやり取りできますが、
お互いについてほとんど知る必要がありません。
observerパターンは、サブジェクトとオブザーバが疎結合となるオブジェクト設計を提供します。

疎結合じゃない場合

  • 複数のオブジェクトが相互に多くの種類のメッセージをやりとりしている
  • 一つのクラスが、クラスの名前以上の沢山の機能を持っている

疎結合の利点

お互いにやりとりはできるけど、
お互いについてほとんど知る必要がない

デザインパターンと疎結合

デザインパターン名 何を疎結合にしている?
Facade 使う側がサブシステムが密結合になるのを回避している

関連項目

MVC


facade factory observer

サポートサイト Wikidot.com facadefactoryobserver