1

私は3つのプロジェクトで解決策を持っています

Project1 - main application
Project2 - graphing application
Project3 - graphing library

データは、Project1 のオブジェクトからアクセスされます。プロジェクト 1 には、データ (フォーム) の表示を作成するためのプロジェクト 2 への参照があり、projectg 2 には、グラフのレンダリングという実際の重い作業を行うためのプロジェクト 3 への参照があります。

ここで、プロジェクト 3 はプロジェクト 1 のオブジェクト/メソッドにアクセスできる必要があります。プロジェクト 1 にデータが存在するためです。しかし、プロジェクト 3 からプロジェクト 1 への参照を追加すると、循環参照に関するエラーが発生します。

この問題を解決するにはどうすればよいですか?

ありがとう、レザ

4

3 に答える 3

8

流れを一方向に保つ必要があります。

それを回避するために、私は通常「モデル」プロジェクトを持っています。データ モデルはすべてこのプロジェクトに保存され、このプロジェクトはそれらを必要とする他のプロジェクトから参照されます。

于 2012-11-09T02:01:14.990 に答える
4

いいえ; これを回避する方法はありません。循環依存関係があります。アプリケーションのレイヤーをリファクタリングする必要があります。

私が見つけたものは、レイヤーに関して(最低から最高まで)私にとって最も効果的です

  1. グローバル メソッドと構成 (基本型拡張メソッド、システム メッセージなど)。
  2. データ アクセス層。ビジネス ロジックはありません。データ CRUD ロジックのみ。
  3. ビジネス層。ここにビジネス ロジックを追加します。
  4. UI 付加価値レイヤー。これは、グラフ作成ライブラリなどの場所です。(オプション)
  5. UI レイヤー。ここで、エンド ユーザーに表示される UI を構築します。
于 2012-11-09T02:02:40.013 に答える
2

循環参照に対処する 1 つの方法は、アプリケーションを再構築することです。

プロジェクト 4 を作成し、そこにプロジェクトに共通のインターフェイスを配置します。他のすべてのプロジェクトからプロジェクト 4 を含めることができます。次に、そのプロジェクトのインターフェイスを他の 3 つのプロジェクトのいずれかに実装し、何らかのファクトリ メカニズムを介して実装を使用します (コントロール コンテナーの反転も有効ですが、単純なアプリケーションではやり過ぎかもしれません)。

于 2012-11-09T02:03:36.340 に答える