Я знаю, что проблема круговых зависимостей в контексте внедрения зависимостей с помощью prism/unity обсуждалась здесь ранее.
Но я все еще не понимаю. Предположим, следующие классы:
class Feeder : IFeeder {
IManager _MM,
Feeder(IManager MM)
{
this._MM = MM;
}
public void Start()
{
...
}
public void Stop()
{
...
}
private Propagate()
{
_MM.ConsumeFeed()
}
};
class FeedManager : IManager
{
IFeeder _Feeder;
FeedManager(IFeeder Feeder)
{
this._Feeder = Feeder;
}
public ConsumeFeed()
{
...
}
private Shutdown()
{
_Feeder.Stop();
}
private StartUp()
{
_Feeder.Start();
}
};
Это явно круговая зависимость, поскольку Feeder зависит от FeedManager и наоборот. Я не вижу четкого способа решить это, так как это кажется очень естественным дизайном.
При переходе по этой ссылке есть подсказка для извлечения некоторых методов, но я до сих пор не понимаю, как я могу отделить эти объекты. Я читал об инверсии зависимостей, шаблоне наблюдателя, общих объектах, событиях и так далее. Мне все это кажется излишним для достижения простой связи между двумя объектами.
Единственный способ решить эту проблему — работать с миллионом событий в приложении или общих объектах? Спасибо за помощь, Юрген