アプリケーションに (C# を使用して) 実装したいメディエーター パターンについて質問があります。コードにパターンを実装しているときに、循環依存関係に遭遇しました。クラスの構造は次のとおりです。
Mediatorコンポーネント/クラスは異なるアセンブリにありColleague、メディエーターパターンとして、両方のコンポーネント (クラス) を相互に使用する必要があります。問題は、相互に参照するときに発生します。
以下のコードを検討してください。
namespace Mediator
{
public abstract class IMediator
{
public IColleague colleague{get;set;}
void Register();
void Send();
}
public class MediatorA:IMediator
{
void Register(){//code here}
void Send(){//code here}
}
}
namespace Colleague
{
public abstract class IColleague
{
IMediator mediator;
void Send();
void Recieve();
}
public class ColleagueA:IColleague
{
void Send(){//code here}
void Recieve(){//code here}
}
}
Mediater と同僚は異なる名前空間とアセンブリにあるため、循環依存関係を解決するにはどうすればよいですか?