EventBus / PubSub против (реактивных расширений) RX с точки зрения ясности кода в однопоточном приложении
В настоящее время я использую EventBus /PubSub архитектура / шаблон с Scala (и JavaFX) для реализации простого приложения для организации заметок (вроде клиента Evernote с некоторыми дополнительными функциями отображения разума), и я должен сказать, что мне действительно нравится EventBus над шаблоном наблюдателя.
Вот некоторые библиотеки EventBus:
https://code.google.com/p/guava-libraries/wiki/EventBusExplained
http://eventbus.org (в настоящее время, кажется, не работает), это то, что я использую в моей реализации.
http://greenrobot.github.io/EventBus/
Вот сравнение библиотек EventBus:http://codeblock.engio.net/37/
EventBus связан сшаблон публикации-подписки.
Тем не мение !
Недавно я взялРеактивный курс от Coursera и начал задаваться вопросом, используя лиRXJava вместо EventBus упростит код обработки событий еще больше воднопоточный приложение ?
Я хотел бы спросить об опыте людей, которые программировали с использованием обеих технологий (какая-то библиотека Eventbusа также некоторая формареактивные расширения (RX)): было проще справиться со сложностью обработки событий с помощью RX, чем с архитектурой шины событийучитывая, что не было необходимости использовать несколько потоков ?
Я спрашиваю это, потому что я слышал вРеактивные лекции на Coursera тотRX приводит к гораздо более чистому коду, чем использование шаблона наблюдателя (то есть нет «ада обратного вызова»), однако я не нашел никакого сравнения между архитектурой EventBus иRXJava, Таким образом, ясно, что и EventBus, и RXJava лучше, чем шаблон наблюдателя, ночто лучше в однопоточных приложениях с точки зрения ясности кода и ремонтопригодности?
Если я правильно понимаю, основной смысл продажиRXJava заключается в том, что он может использоваться для создания отзывчивых приложений, если есть операции блокировки (например, ожидание ответа от сервера).
Но меня не волнует асихронность, все, что меня волнует, - это поддержание кода в чистоте, неразберихе и легкости рассуждения воднопоточное приложение.
В таком случае, все же лучше использовать RXJava, чем EventBus?
Я думаю, что EventBus был бы более простым и чистым решением, и я не вижу никакой причины, почему я должен использовать RXJava дляоднопоточное приложение в пользу простой архитектуры EventBus.
Но я могу ошибаться!
Пожалуйста, исправьте меня, если я ошибаюсь, и объясните, почему RXJava будет лучше, чем простой EventBus в случаеоднопоточное приложение где не выполняются операции блокировки.