2

オブザーバー パターンを使用すると、そのクラス ダイアグラムに基づいて、SUBJECT が OBSERVER への参照を使用することがわかります。一方、OBSERVER は、自身を登録または削除するために SUBJECT への参照を持っています。

これは「循環参照」ですか?

4

2 に答える 2

2

確かに、それは循環参照です。これは、参照のグラフのサイクルです。

「循環参照」という用語は、より有害なことについて話すときに使用されることがあります。特に、循環依存関係がある場合(たとえば、A をコンパイルするには B が必要ですが、B をコンパイルするには A が必要です)。

循環参照自体は有害ではありません (例: 循環リンクリスト)。

于 2010-10-19T13:59:58.230 に答える
1

あなたがそれを説明するように、それは循環参照の場合です。ただし、完全なパターンObserverは、は抽象クラス/インターフェースであり、1つ以上の具体的な実装があることに注意してください。Observer一部のバリエーションでは(そのサブクラスがそれを参照する場合がありますが)何も知りませんがSubject、他のバリエーションでは、インターフェイスに依存するObservableか、直接に依存する場合がありますSubject。ただし、具体的なサブクラスではなく、Subjectについてのみ知っています。Observer

したがって、参照は(必然的に)循環的ではありません。

于 2010-10-19T14:06:25.653 に答える