Select Language

AI Technology Community

Indirection(仲介)

      (1) 問題:2つ(または複数)の事物間の直接的な結合を避けるために、どのように職責を分配すればよいか?オブジェクトを非結合化して結合度を下げ、システムの再利用性を向上させるにはどうすればよいか?
      (2) 解決策:コンポーネントやサービス間の操作を調整するために、職責を中間オブジェクトに分配し、それらが直接結合しないようにする。中間オブジェクトとは、他のコンポーネント間に設けられる仲介者である。
      (3) 分析:オブジェクト間の直接的な結合を避けるために、最も一般的な方法は、オブジェクト間に中間オブジェクトまたは仲介オブジェクトを導入し、仲介オブジェクトを介して間接的に接続することである。仲介パターンは、オブジェクト指向設計原則の中のデミテルの法則に対応しており、ファサードパターン、プロキシパターン、メディエーターパターンなどの設計パターンにおいても仲介パターンが体現されている。
「仲介」とは、文字通り、このことを直接行うことができず、一度迂回する必要があるということである。迂回することの利点は、本来直接接続されるであろうオブジェクト同士が隔離され、一方の変更が他方に影響を与えないことである。先の低結合パターンで述べたように、「2つの異なるモジュールの内部クラス同士は直接接続できない」が、中間クラスを介して2つの異なるモジュールを間接的に接続することができる。このようにすれば、この2つのモジュールにとって、それらの間には依然として結合/依存関係がない。

post
  • 41

    item of content
人工知能に関する知識を共有します。これにはAIアルゴリズム、応用例、データ、モデルなどに関する情報が含まれます。