11

インターフェイスとそれらを実装するクラスに関して、ソリューション/プロジェクトがどのように編成されるかについての標準はありますか? 私は MVP の DDD アプリケーションに取り組んでおり、他の人がプロジェクトをどのようにレイアウトしているか、またその理由についてフィードバックをお待ちしています。ありがとう!!

4

3 に答える 3

12

それらは、それらにとって論理的な名前空間に存在する必要があります。これは、それらが同じ名前空間に存在するかどうかについての確固たる規則がないことを意味します。比較的抽象的な名前空間は実装と共存しないことが多いのに対し、実装者と 1 対 1 の関係にあるインターフェイスは、互いに共存する可能性が高くなります。

より重要な考慮事項は、再利用のためにインターフェイスを消費可能にしておくことです。通常、これは、名前空間ではなく、インターフェイスと共にアセンブリに何が入るかについてより多くの考慮が払われることを意味します。

于 2011-01-26T02:17:25.560 に答える
4

Separate InterfacesでMartin Fowler のパターンを確認してください。どこに配置するかを決めるのに役立つかもしれません。

于 2011-01-26T02:18:03.643 に答える
1

確かにそうすべきやむを得ない理由はありません。

実際、インターフェースのユーザーが具体的なクラスを認識する必要がない場合、および複数の実装が存在する場合、およびインターフェースを定義するグループがその特定のバージョンを実装するグループと異なる場合 (これらはすべて有効なケースです) )、実装とインターフェイスの名前空間を分離するのがおそらく賢明です。

C# についてはよくわかりませんが、Java では、パッケージ メンバーシップは、メソッドの可視性を強化するための重要な組織パターンです。パッケージプライベートなものを利用したい場合は、基本的に実装クラスを同じパッケージにグループ化する必要があります (おそらく、それらをインターフェイスと一緒に配置することはできません)。

于 2011-01-26T02:18:10.780 に答える