这被称为“循环参考”吗?

时间:2010-10-19 13:55:37

标签: design-patterns observers

拥有Observer模式,我们都知道基于其类图,SUBJECT使用对OBSERVER的引用。同时,OBSERVER提到了SUBJECT,以便注册或删除自己。

这是“循环参考”吗?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

正如您所描述的那样,这是一个循环引用的案例。但请注意,在the full pattern中,Observer是一个抽象类/接口,它有一个或多个具体实现。 Observer在某些变体中对Subject一无所知(尽管其子类可能引用它),在其他变体中,它可能取决于Observable接口或直接取决于Subject。但是,Subject只知道Observer,而不是它的具体子类。

因此引用不是(必然)循环。