这就是所谓的“循环引用”吗?

发布于 2024-09-27 18:29:43 字数 97 浏览 8 评论 0原文

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

这是“循环引用”吗?

Having the Observer pattern, we all know that based on its class diagram, the SUBJECT uses a reference to the OBSERVER. Meanwhile, the OBSERVER has a reference to SUBJECT in order to register or remove itself.

Is this a "Circular Reference"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

二手情话 2024-10-04 18:29:43

当然,这是一个循环引用。这是参考图中的一个循环。

不过,当谈论更有害的事情时,有时会使用术语“循环引用”,特别是当您有循环依赖项时(例如,A 需要 B 来编译,但 B 需要 A 来编译)。

循环引用本身并没有什么害处(例如:循环链表)。

Sure, it's a circular reference. It's a cycle in the graph of references.

Using the term "circular references" sometimes occurs when talking about more harmful things though, particularly when you have circular dependencies (e.g. A needs B to compile, but B needs A to compile).

A circular reference in itself isn't harmful (e.g.: a circular linked list).

横笛休吹塞上声 2024-10-04 18:29:43

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

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

As you describe it, it is a case of circular reference. However, note that in the full pattern, Observer is an abstract class / interface, which has one or more concrete implementations. Observer in some variations knows nothing about Subject (although its subclasses may refer to it), in other variations it may depend on an Observable interface or directly on Subject. However, Subject knows only about Observer, not its concrete subclasses.

So the reference is not (necessarily) circular.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文