ソフトウェアアーキテクチャ博物館AtMuseum
失敗パターン解説


下から上への逆方向依存

説明

レイヤー化において「下位が上位のサービスを利用する」という逆方向の依存性。

レイヤー化においては「上位が下位のサービスを利用する」という依存性にすること。

すなわち、上位から下位に指示が出て、下位から上位に報告する、というルール。

 

下位から上位への「報告」の実装は、普通に関数コールにしても良いが双方向依存になってしまいます。

コールバック関数にすることで単方向依存になります。但し、コールバック関数は多用すると、コードで動きが追いかけられなくなってしまいます。

コールバック関数は、インタフェースとして定義して、明示的に設計実装することをお勧めします。