切り離されたインタフェース
インタフェースを実装とは別のパッケージで定義する。
完全な説明については P of EAA ページの 476 を参照
システムを開発するときに、システムの各部分の結合を弱めることでデザイン品質を向上させることができる。これを達成する良い方法は、クラスをパッケージにグループ化し、それらの間の依存関係を制御することです。その後、あるパッケージのクラスが別のクラスをどのように呼び出すかについてのルールに従うことができます。たとえば、ドメイン層のクラスはプレゼンテーション層のクラスを呼び出してはならないというルールです。
ただし、一般的な依存構造に矛盾するメソッドを呼び出す必要がある場合があります。その場合は、切り離されたインタフェースを使用して、あるパッケージにインタフェースを定義し、別のインタフェースに実装します。これにより、インタフェースへの依存関係を必要とするクライアントは、実装を完全に認識しません。切り離されたインタフェースは、ゲートウェイ (466) に適したプラグポイントを提供します。