2011-02-03 9 views
1

プリズムモジュールは、どちらも他のサービスが提供するサービスに依存している必要があります。安全な方法で相互依存関係を提示する方法はありますか?私はそれらを1つのモジュールに結合することを考えましたが、実際には論理的に結合しません。プリズムとサーキュラの依存性

ところで、私はMEFがこれを行うことができることを知っています。私はMEFが素晴らしいことを知っています!私はMEFが大好きです。私はその技術に切り替えることができません。なぜなら、フレームワークとIDEのアップグレードが必要になるからです。

私と同じ問題を抱えている場合は、MEFをご覧ください。私のために遅くに。あなた自身を救いなさい!

答えて

0

私は何をすべきか考え出しました。タイムアウトサービスは、初期化時にプレゼンテーションサービスで必要とされないため、遅延プロパティ内で解決しました。

モジュールの初期化時にタイムアウトサービスが登録されるため、このプロパティは必要なときに使用できます。理想的ではありませんが、機能します。物語の道徳はMEFとなります。

Sigh!

+0

は、これらのモジュールが相互依存しているように見えますが、論理的には同じモジュールである必要があります。 –

+0

@Anderson、モジュール分解は必ずしも依存関係の線に沿って分けるのが最良ではありません。場合によっては、2つの別個のエンティティ間に1対1の関係を持つ必要があります。彼らは互いに依存しているわけではない。それらを結婚することは、論理ではなく、利便性と実用性の行為になるでしょう。私は時間の制約が私に実用的であることを要求するまで、理想主義者です。ありがたいことに、少し余裕があり、その間にうまくいく解決策があります。 – Jordan

+0

2つのモジュールが依存していて、より適切に因数分解することができなかった場合(問題のサービスを別のモジュールに入れたり、それらがシェルに入っている基本的なコア関数であると判断した場合)あなたのシナリオは何ですか? –

3

論理的な解決策は、これら2つのモジュール間で共有されるサービスが第3のモジュールに抽出されるということです。あなたの2つの現在のモジュールは共に共用モジュールに安全に依存することができ、循環依存性がなく、素早く分離されたプロジェクト構造を持つことができます。

これは実行できない理由は何ですか?

+0

これらは論理的に非常に原子的なモジュールです。つまり、それぞれが単一のサービスを提供します。私は分解が非常にうまくやっているかもしれませんが、おそらく私はそれらを組み合わせるべきかもしれませんが、それは論理的に醜いです。しかし、私はその実用的だと思います。 1つは、ある量のアイドル時間の後にキオスクアプリケーションを開始するタイムアウトサービスであり、もう1つはビュー切り替え/ナビゲーションサービスです。 – Jordan

関連する問題