Я не могу различить, что использовать. Кажется, все работают одинаково, но по-разному, но базовая логика одинакова, пожалуйста, дайте мне знать, в чем основная разница во всем?
В чем разница между наблюдателем (шаблон проектирования), шиной событий (зеленый робот), LiveData (Android)?
Ответы (1)
EventBus
— это всего лишь своего рода инструмент, который был написан с учетом ситуаций подобных Observer. Обычно EventBus
используется для активации событий, поэтому мы можем использовать слово Observer, подходящее для этого. Шаблон наблюдателя использует события или сообщения для уведомления об изменении интересующих объектов о наблюдаемом (изменяемом) объекте.
И EventBus
также является шаблоном не наблюдатель, потому что, если у вас есть N объектов и вы хотите общаться между ними всеми, вам нужно N * N наблюдателей, если вы используете шаблон наблюдателя, но для этого достаточно только одного глобального EventBus
такая же работа.
Итак, EventBus
— это шаблон EventBus.
И LiveData
также считается классом держателя наблюдаемых данных, который используется в шаблоне Observer. В отличие от обычного наблюдаемого, LiveData
с учетом жизненного цикла, то есть учитывает жизненный цикл других компонентов приложения, таких как действия, фрагменты или службы.
Итак, LiveData
— это паттерн Observer для Android, или его можно рассматривать как отдельный паттерн LiveData.