依存関係ツリーは次のとおりです: BigApp -> 子アプリ -> ライブラリ
すべてのコンポーネントは、上記のライブラリの 1 つ (LibA) を多用しています。ただし、「上位レベル」のアセンブリからのクラスを必要とする「いくつかの」パブリック メソッドがあり、CIRCULAR 参照を避けたいと考えています。このための良いデザインとして何を提案しますか?
依存関係ツリーは次のとおりです: BigApp -> 子アプリ -> ライブラリ
すべてのコンポーネントは、上記のライブラリの 1 つ (LibA) を多用しています。ただし、「上位レベル」のアセンブリからのクラスを必要とする「いくつかの」パブリック メソッドがあり、CIRCULAR 参照を避けたいと考えています。このための良いデザインとして何を提案しますか?
このようなことを回避する典型的な方法の 1 つは、何にも依存しないインターフェイスを作成することです。次に、BigApp と LibA の両方がインターフェイスに依存できます。BigApp はインターフェイスの具体的な実装を提供し、そのオブジェクトが使用される前のある時点で LibA に渡すことができます。
状況の詳細に応じて、1 つ以上のクラスの機能の一部を抽象化するインターフェイスを定義できます。次に、循環依存を引き起こす可能性があると思われるインターフェイスを参照します。