java observerパターンでは、Subjectにはオブザーバ・レジスタがSubjectに登録されたオブザーバのリストがあります。java:observer pattern理論上の問題
1000人のオブザーバーがSubjectに登録しているとします。サブジェクトはサブジェクトクラスのリストを持っています。
数日後、オブザーバーはもはや被験者からの通知には関心がありませんが、オブザーバーは登録を忘れる(または彼は怠惰です)ことを忘れてしまいます。
ここでは、SubjectにはList内の不要なオブザーバのオブジェクトが含まれており、メモリを無駄にしています。
メモリが本当に重要でメモリを浪費したくない場合の解決策は何ですか?
解決策は弱い参照ですか?
登録を行っている間は、登録者は10日後に再登録する必要があります。
_ "オブザーバーは忘れています(または彼は怠け者です)。登録を解除する" _ - これはバグと呼ばれます。 –
実際のシナリオでは、これは通常発生します。私たちはyoutubeチャンネルに登録し、通知を受け取ります。 YouTubeは私に通知を提供しますが、私は興味がありません。私はメモリの問題はありません、YouTubeは私に通知を送信し続けます。しかし、あなたがYouTube側で見ると、それは記憶の浪費です。私はテレコムのシナリオでこのような状況に直面しています。 – VJS
@VJSなので、もし興味がないなら、また登録解除オプションもあります。コンピュータは、ユーザーの心ではなく、そのメモリを読み取ることができます。 :)) –