Я знаю, что проблема круговых зависимостей в контексте внедрения зависимостей с помощью призмы / единства обсуждалась здесь и раньше.
Но я до сих пор не понимаю.Предположим, следующие классы:
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 и наоборот.Я не вижу четкого способа восстановить это, так как это кажется очень естественным дизайном.
Когда вы переходите по этой ссылке , есть подсказка, чтобы извлечь некоторые методы, но я все еще нене вижу, как я могу отделить эти объекты.Я читал об инверсии зависимостей, шаблоне наблюдателя, общих объектах, событиях и так далее.Мне кажется, что это все излишнее достижение простой связи между двумя объектами.
Является ли единственный способ решить эту проблему, чтобы работать с миллионами событий в приложении или общих объектах?Спасибо за помощь, Юрген