Я просматриваю книгу Head First Design Patterns и прилагаю все усилия, чтобы преобразовать код с их Java на С#. После того, как в книге обсуждался шаблон наблюдателя, он упомянул, что Java имеет классы/интерфейсы, встроенные, как и .NET4. Поэтому я начал исследовать, как правильно использовать его, и я больше всего понял его, кроме метода Subscribe()
.
Если вы посмотрите на статью MSDN при попытке подписания IObserver, метод возвращает IDisposable. Зачем это необходимо? Почему бы просто не реализовать метод, который не отвечает на IObserver на основе аргумента метода? Я исследовал причину использования интерфейса IDisposable. Я также прочитал это, но не совсем понял разницу/то, что он пытался сказать мне:
Он возвращает ссылку на интерфейс IDisposable. Это позволяет наблюдателям отказаться от подписки (то есть прекратить получать уведомления) до того, как поставщик завершит их отправку и вызвал метод подписчика OnCompleted.