コードを再考する必要があるようです。
インターフェイスを使用することで、依存関係を解消できるのではないでしょうか?
依存関係の概要を説明できれば、私または他の誰かが構造を再設計する方法についてアイデアを提供できるかもしれません。
編集:
マイナスをつけてくれてありがとう...この件に関するウィキペディアの記事を引用させてください。
[...] ソフトウェア設計では、より大きなソフトウェア モジュール間の循環依存関係は
、その悪影響のためにアンチパターンと見なされます。
[...]
循環依存関係は、ソフトウェア プログラムで多くの望ましくない影響を引き起こす可能性があります。ソフトウェア設計の観点から最も問題となるのは、相互に依存するモジュールの密結合です。これにより、単一モジュールの個別の再利用が減少または不可能になります。
循環依存関係は、1 つのモジュールの小さなローカル変更が他のモジュールに広がり、不要なグローバル効果 (プログラム エラー、コンパイル エラー) をもたらす場合にドミノ効果を引き起こす可能性があります。循環依存関係は、無限再帰やその他の予期しないエラーを引き起こす可能性もあります。
循環依存関係は、特定の非常に原始的な自動ガベージ コレクター (参照カウントを使用するもの) が未使用のオブジェクトの割り当てを解除できないようにすることで、メモリ リークを引き起こす可能性もあります。
[...]
循環依存関係は
、ある種のコールバック機能を実装する必要がある経験の浅いプログラマーによって導入されることがよくあります。経験豊富なプログラマーは、オブザーバー パターンのような設計パターンを適用することで、このような不要な循環依存を回避します。
(強調を追加)
しかし、繰り返しになりますが、ウィキペディアに書いている集団よりも賢いかもしれません...