2

それらすべてを1つの別個のフォルダー構造に配置するか、それらを実装するクラスと一緒に配置しますか?

4

1 に答える 1

7

インターフェイスを、それらを実装するクラスと一緒に配置しないでください(これらのクラスが以下の要件を満たしている場合を除く)。そうすることで、インターフェースと実装者の間に緊密な結合が導入され、実装者を同時に参照せずにインターフェースの他の実装を作成することはできなくなります。

基本的に2つのオプションがあります。

  • インターフェイスを、それらを消費するクラスと一緒に配置します。これでも緊密な結合が作成されますが、消費者は関連するタイプを提供するライブラリに住んでいることが多いため、この結合はそれほど問題にはなりません。この場合、このライブラリに実装者がいると、追加のカップリングを導入することなく、インターフェイスを実装できます。
  • 究極の緩い結合のために、インターフェースを別のライブラリーに入れてください。これにより柔軟性が向上しますが、少し余分な作業が必要になる場合もあります。
于 2010-03-08T13:31:56.100 に答える