Учебники

RxJava — Обзор

RxJava — это расширение ReactiveX на основе Java. Он обеспечивает реализацию или проект ReactiveX на Java. Ниже приведены ключевые характеристики RxJava.

  • Расширяет шаблон наблюдателя.

  • Поддержка последовательности данных / событий.

  • Предоставляет операторы для декларативного составления последовательностей.

  • Внутренне обрабатывает потоки, синхронизацию, безопасность потоков и параллельные структуры данных.

Расширяет шаблон наблюдателя.

Поддержка последовательности данных / событий.

Предоставляет операторы для декларативного составления последовательностей.

Внутренне обрабатывает потоки, синхронизацию, безопасность потоков и параллельные структуры данных.

Что такое ReactiveX?

ReactiveX — это проект, целью которого является предоставление концепции реактивного программирования для различных языков программирования. Реактивное программирование относится к сценарию, в котором программа реагирует как и когда появляются данные. Это концепция программирования, основанная на событиях, и события могут распространяться на регистры наблюдателей.

В соответствии с Reactive , они объединили лучшее из шаблона Observer, шаблона Iterator и функционального шаблона.

Шаблон Observer сделан правильно. ReactiveX — это сочетание лучших идей из шаблона Observer, шаблона Iterator и функционального программирования.

Функциональное программирование

Функциональное программирование вращается вокруг создания программного обеспечения с использованием чистых функций. Чистая функция не зависит от предыдущего состояния и всегда возвращает один и тот же результат для тех же переданных параметров. Чистые функции помогают избежать проблем, связанных с общими объектами, изменяемыми данными и побочными эффектами, часто встречающимися в многопоточных средах.

Реактивное программирование

Реактивное программирование относится к программированию на основе событий, когда потоки данных поступают асинхронно и обрабатываются по прибытии.

Функциональное реактивное программирование

RxJava реализует обе концепции вместе, где данные потоков изменяются со временем, и функция потребителя реагирует соответственно.

Реактивный Манифест

Reactive Manifesto — это онлайновый документ, подтверждающий высокий стандарт систем прикладного программного обеспечения. Согласно манифесту, ниже приведены ключевые атрибуты реактивного программного обеспечения —

  • Отзывчивый — всегда должен отвечать своевременно.

  • Управляемый сообщениями — следует использовать асинхронную передачу сообщений между компонентами, чтобы они имели слабую связь.

  • Эластичный — должен оставаться отзывчивым даже при высокой нагрузке.

  • Эластичный — должен оставаться отзывчивым, даже если какой-либо компонент (ы) выходит из строя.

Отзывчивый — всегда должен отвечать своевременно.

Управляемый сообщениями — следует использовать асинхронную передачу сообщений между компонентами, чтобы они имели слабую связь.

Эластичный — должен оставаться отзывчивым даже при высокой нагрузке.

Эластичный — должен оставаться отзывчивым, даже если какой-либо компонент (ы) выходит из строя.

Ключевые компоненты RxJava

RxJava имеет два ключевых компонента: Observables и Observer.

  • Observable — представляет объект, похожий на Stream, который может выдавать ноль или более данных, может отправлять сообщение об ошибке, скорость которого может контролироваться во время передачи набора данных, может отправлять как конечные, так и бесконечные данные.

  • Наблюдатель — подписывается на данные последовательности наблюдаемой и реагирует на единицу наблюдаемой. Наблюдатели уведомляются всякий раз, когда Observable отправляет данные. Обозреватель обрабатывает данные один за другим.

Observable — представляет объект, похожий на Stream, который может выдавать ноль или более данных, может отправлять сообщение об ошибке, скорость которого может контролироваться во время передачи набора данных, может отправлять как конечные, так и бесконечные данные.

Наблюдатель — подписывается на данные последовательности наблюдаемой и реагирует на единицу наблюдаемой. Наблюдатели уведомляются всякий раз, когда Observable отправляет данные. Обозреватель обрабатывает данные один за другим.

Наблюдатель никогда не уведомляется, если элементы отсутствуют или обратный вызов для предыдущего элемента не возвращается.