8

私は2つのプロジェクトに とP1と言いP2ます。

P1 にはP2の参照があります。

P2's methodsからアクセスできますP1P1's methodsしかし、そこからアクセスしたい場合はどうすればP2アクセスできますか?

P1'sに参照を追加できないことはわかっていP2ますか?

もし可能ならば?はいの場合、どのように?

4

4 に答える 4

19

他の人が指摘したように、循環参照が問題です。P1 をコンパイルする前に P2 をコンパイルすることはできませんが、P1 が P2 に依存している場合、P2 がコンパイルされるまで P1 をコンパイルすることはできません... 問題はありますか?

今解決策:

  • 簡単な方法: P1 と P2 の共有コードを配置する共有ライブラリを作成します。この共有プロジェクトは、P1 と P2 の両方から参照できます。

  • より良い解決策: 共有ライブラリで定義するインターフェイスを作成します。P1 の P2 の「参照」は、実際の実装ではなく、共有インターフェイスに基づいてください。そうすれば、よりテストしやすいソリューションが得られ、コードの一部を簡単に置き換えることができます。

于 2015-12-10T12:53:03.107 に答える
2

簡単な回答: P1 を P2 プロジェクトの参照として追加する方法はありません。これは、許可されていない循環依存関係を作成するためです。コードをリファクタリングし、別の方法でアプリケーションを設計することを検討してください。1 つの方法は、両方のプロジェクトへの参照を含む別のプロジェクトを導入することです。

于 2015-12-10T12:51:03.243 に答える
1

循環依存関係が作成されるため、P2 から P1 を参照することはできません。循環依存は悪い設計を示しています。これを回避する方法があります。たとえば、共有コードを別のプロジェクトにリファクタリングできます。

于 2015-12-10T12:51:16.240 に答える