1
は、その後すぐにいくつかのチェック場合a
のメソッドを呼び出す必要がありますパス。私は、私はイベントを使用して、このarroundの取得とb
がa
を知らない/独立したこと聞かせて可能性を知っている巡回DI依存性注入号(双方向通信)
public A(B b) { _b = b; }
public void CallToB() { _b.Method(); }
public void Method() { DoSomething(); }
public B(A a) { _a = a; }
public void Method() { if (SomeCheck()) _a.Method(); }
を持つことになり、これを達成するために
。しかし、それは間違って感じるでしょう。
注:双方向通信が可能になったこの質問に対する回答はありませんでした。
そして、それは循環依存を避けるのがベストですなぜこれがあるインタフェースが使用されている場合は、何がありました(..サイクルの外側に配線されているインプリメンテーション自体の間に確立されたサイクル) – user2864740
循環依存性は設計上の欠陥を示すことがよくあります。これらのクラスを制御できれば、共通の依存関係'A'と' B'の両方が第3クラスに属しているので、 'A'と' B'の両方がお互い。 – topher