2009-09-21 19 views
-1

私はお互いを参照する2つのFlexライブラリを持っています。どちらもリンクタイプ "External"を使用し、Loaderクラスで手動でロードします。フレックスライブラリの循環依存性

A cycle was detected in the build path of project: foo」というエラーが表示されます。

これを解決する方法はありますか?おそらく、コンパイラなどのパラメータです。

私はソースコードがライブラリにコンパイルされませんexternalリンクタイプであるため、問題がなければならないとは思わない...

答えて

2

あなたのコードを再考する必要があるより多くのように聞こえます。

多分、インターフェイスを使用して片方向依存性を減らすことはできますか?

もしかすると、私や他の誰かが依存関係の概要を知ることができれば、構造をどのように再設計するかというアイデアを得ることができます。

編集:

私にマイナスを与えるためにどのように素敵なあなたの...私が被写体にWikipedia articleを引用してみましょう:

[...]ソフトウェア設計の円形 依存関係にありますより大きいソフトウェアの間 モジュールは アンチパターンと考えられます。その理由はのネガティブな影響です。

[...]

循環依存関係がソフトウェアプログラムの多くの 望ましくない影響を引き起こす可能性があります。ビューのソフトウェア 設計点から最も問題 が減少またはを 単一モジュールの 不可能別個の再利用を行い、相互に依存 モジュールのタイト カップリングです。

循環依存関係は、一つのモジュールの小さなローカル 変更は 他のモジュールの中に広がり、不要なグローバル 効果があるとき(プログラムエラーを、 コンパイルエラー) ドミノ効果を引き起こす可能性があります。循環依存関係は でも無限再帰、または その他の予期しない失敗を招く可能性があります。

循環依存性はまた、未使用 オブジェクトの割り当てを解除から一定 非常に原始的な自動ガベージコレクタ (参照 カウントを使用するもの)を防止することによって メモリリークを引き起こす可能性があります。

[...]

循環依存関係は、しばしば コールバック機能のいくつかの種類を実装する必要があり、経験の浅いプログラマによって導入 です。 経験豊富なプログラマは、 オブザーバパターンのようなデザインパターンを適用することによって、 不要な循環依存性を回避します。

(強調追加)

しかし、その後、再び、多分あなたはウィキペディアに書き込み集団よりも賢いです...互いを参照

+0

+1外部のFlexライブラリは悪い考えです。これを実践する方法は、ライブラリを統合し、共通の依存関係を第2のライブラリに抽出することですが、再利用可能なライブラリの目的を破ります。 – Ryan