1

StructureMap (IOC/DI コンテナー フレームワーク) を多用する大規模なプロジェクトを理解しようとしています。すべての共有コンポーネントのインターフェイスは、他のすべてのプロジェクトによって参照される単一のプロジェクトに含まれています。

依存関係の階層を構築しようとすると、どのプロジェクトが他のプロジェクトに依存しているかを検出するのが非常に難しいことがわかりました。これは、直接のプロジェクト参照がなく、インターフェイス プロジェクトへの参照が 1 つしかないためです。

どうすれば階層ツリーを構築できますか? 逆に、すべてのインターフェースを 1 つのスーパー プロジェクトのグッド プラクティスに集中させるか、それともむしろ「通常」である必要があります。つまり、すべてのプロジェクトには独自のパブリック インターフェース (およびそれを実装する定義済みの具象クラス) が含まれます。これにより、参照プロジェクトに従うだけで簡単に階層を構築することもできます。

4

1 に答える 1

1

これは少し主観的なことかもしれませんが、自然には相互に関連していないインターフェイスを含む別のプロジェクトでのインターフェイスのこのパッケージ化には反対します。アプリケーションのさまざまな部分に別々のプロジェクトがある場合は、それらのプロジェクトのインターフェースも別々にする必要があります。インターフェイスを実装とは別のプロジェクトに配置する理由がある場合もありますが、説明したように、複数の実装プロジェクトのインターフェイスを1つの巨大なインターフェイスプロジェクトに結合する理由はあまりありません。

この状況で立ち往生していて、実際の実行時の依存関係を明らかにしたい場合は、構成を検査する必要があります。これは、レジストリDSLを使用して可能であるか、XML構成の解析が必要な場合があります。

于 2012-04-18T11:37:38.093 に答える