'Uncle Bob' Martin は 'Agile Software Development' pp318-9 で、'インターフェイスは派生物ではなくクライアントに属します...クライアントは、制御するインターフェイスと共にパッケージ化される傾向がある' という良い議論をしています。
実際には、静的に型付けされた言語でクライアントとのインターフェイスをどのようにパッケージ化するのでしょうか? 個々のインターフェースの観点から (良い OO インターフェースには複数の実装がある)、Martin の推奨は理にかなっています。しかし、パッケージ レベルでは、通常、各サーバーには多くのクライアントがあり、サーバーがそのクライアントに依存していると、依存関係の矢印が間違った方向に向いているように見えます。実際、「パッケージ デザインの原則」の後半で、Martin はクライアント -> サーバーを直感的に示唆する「安定性の方向に依存する」という格言を紹介しています。