2

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

这是“循环引用”吗?

4

2 回答 2

2

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

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

循环引用本身是无害的(例如:循环链表)。

于 2010-10-19T13:59:58.230 回答
1

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

所以引用不是(必然)循环的。

于 2010-10-19T14:06:25.653 回答