В чем разница между наблюдателем (шаблон проектирования), шиной событий (зеленый робот), LiveData (Android)?

Я не могу различить, что использовать. Кажется, все работают одинаково, но по-разному, но базовая логика одинакова, пожалуйста, дайте мне знать, в чем основная разница во всем?


person Muhammad Waqas    schedule 26.02.2018    source источник
comment
Паттерн наблюдателя позволяет нам добиться чего-то экстраординарного в архитектуре программного обеспечения. Это позволяет нам достичь низкой связанности, высокой сплоченности. Это означает, что мы можем избежать соединения всех экземпляров нашего класса вместе через ссылки в коде, но поддерживать систему этих объектов, которые взаимодействуют через систему шины событий. Другими словами, вместо того, чтобы передавать ссылки на объекты туда и обратно, чтобы позволить нам сделать обратный вызов для родительского действия, например, мы можем вместо этого использовать EventBus. Вы начнете понимать это лучше, когда мы рассмотрим код в Android. Студия.   -  person Hasindu Gajanayake    schedule 26.02.2018


Ответы (1)


EventBus — это всего лишь своего рода инструмент, который был написан с учетом ситуаций подобных Observer. Обычно EventBus используется для активации событий, поэтому мы можем использовать слово Observer, подходящее для этого. Шаблон наблюдателя использует события или сообщения для уведомления об изменении интересующих объектов о наблюдаемом (изменяемом) объекте.

И EventBus также является шаблоном не наблюдатель, потому что, если у вас есть N объектов и вы хотите общаться между ними всеми, вам нужно N * N наблюдателей, если вы используете шаблон наблюдателя, но для этого достаточно только одного глобального EventBus такая же работа.

Итак, EventBus — это шаблон EventBus.


И LiveData также считается классом держателя наблюдаемых данных, который используется в шаблоне Observer. В отличие от обычного наблюдаемого, LiveData с учетом жизненного цикла, то есть учитывает жизненный цикл других компонентов приложения, таких как действия, фрагменты или службы.

Итак, LiveData — это паттерн Observer для Android, или его можно рассматривать как отдельный паттерн LiveData.

person nhoxbypass    schedule 02.03.2018
comment
Второй абзац скопирован из здесь. - person jaco0646; 17.01.2019