Это называется "Циркулярная ссылка"? - PullRequest
2 голосов
/ 19 октября 2010

Имея паттерн Observer, мы все знаем, что на основе диаграммы классов SUBJECT использует ссылку на OBSERVER.Между тем НАБЛЮДАТЕЛЬ имеет ссылку на СУБЪЕКТ для регистрации или удаления самого себя.

Является ли это «Циркулярным справочником»?

Ответы [ 2 ]

2 голосов
/ 19 октября 2010

Конечно, это круговая ссылка.Это цикл в графе ссылок.

Использование термина "циклические ссылки" иногда встречается, когда речь идет о более вредных вещах, особенно, когда у вас есть циклические зависимости (например, A требует, чтобы Bкомпилировать, но B для компиляции требуется A).

Циркулярная ссылка сама по себе не является вредной (например, круговой связанный список).

1 голос
/ 19 октября 2010

Как вы описываете, это случай круговой ссылки.Однако обратите внимание, что в полный шаблон , Observer является абстрактным классом / интерфейсом, который имеет одну или несколько конкретных реализаций.Observer в некоторых вариациях ничего не знает о Subject (хотя его подклассы могут ссылаться на него), в других вариациях он может зависеть от интерфейса Observable или непосредственно от Subject.Однако Subject знает только о Observer, а не о его конкретных подклассах.

Таким образом, ссылка не является (обязательно) круглой.

...