有了观察者模式,我们都知道,根据其类图,SUBJECT 使用对 OBSERVER 的引用。同时,观察者有一个对主题的引用,以便注册或删除自己。

这是“循环引用”吗?

有帮助吗?

解决方案

正如您所描述的,这是循环引用的情况。但是,请注意,在 完整的图案, Observer 是一个抽象类/接口,它有一个或多个具体实现。 Observer 在某些变体中一无所知 Subject (尽管它的子类可能引用它),在其他变体中它可能依赖于 Observable 接口或直接在 Subject. 。然而, Subject 只知道关于 Observer, ,而不是它的具体子类。

因此,引用(不一定)不是循环的。

其他提示

当然,这是一个圆形参考。这是参考图中的一个周期。

不过,在谈论更有害的事情时,使用“循环引用”一词有时会发生,尤其是当您有循环时 依赖性 (例如,需要b来编译,但是B需要A来编译)。

循环引用本身并不有害(例如:循环链接列表)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top