【发布时间】:2011-10-10 10:31:42
【问题描述】:
我知道之前在此处讨论过使用 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,反之亦然。我没有看到一个明确的方法来解决这个问题,因为它看起来是一个非常自然的设计。
当您关注link 时,会提示您提取一些方法,但我仍然不知道如何解耦这些对象。 我读到了依赖倒置、观察者模式、共享对象、事件等等。 对我来说,在两个对象之间实现简单的关系似乎有点过头了。
解决此问题的唯一方法是处理应用程序或共享对象中的一百万个事件吗? 谢谢你的帮助,于尔根
【问题讨论】:
标签: c# unity-container prism circular-dependency