EventBus / PubSub vs (extensiones reactivas) RX con respecto a la claridad del código en una sola aplicación de subprocesos
Actualmente, estoy usando un EventBus /PubSub arquitectura / patrón con Scala (y JavaFX) para implementar una aplicación simple de organización de notas (algo así como un cliente Evernote con alguna funcionalidad de mapeo mental adicional) y tengo que decir que realmente me gusta EventBus sobre el patrón de observador.
Aquí hay algunas bibliotecas de EventBus:
https://code.google.com/p/guava-libraries/wiki/EventBusExplained
http://eventbus.org (actualmente parece estar inactivo) este es el que estoy usando en mi implementación.
http://greenrobot.github.io/EventBus/
Aquí hay una comparación de las bibliotecas EventBus:http://codeblock.engio.net/37/
EventBus está relacionado con elpatrón de publicación-suscripción.
Sin embargo !
Recientemente, tomé elCurso reactivo de Coursera y comencé a preguntarme si usarRXJava en lugar de EventBus simplificaría aún más el código de manejo de eventos en unroscado simple solicitud ?
Me gustaría preguntar sobre las experiencias de las personas que programaron el uso de ambas tecnologías (algún tipo de biblioteca de Eventbusy alguna forma de laextensiones reactivas (RX)): ¿fue más fácil abordar la complejidad del manejo de eventos usando RX que con una arquitectura de bus de eventos?dado que no había necesidad de usar múltiples hilos ?
Estoy preguntando esto porque he escuchado en elConferencias reactivas en Coursera eseRX conduce a un código mucho más limpio que el uso del patrón de observador (es decir, no hay un "infierno de devolución de llamada"), sin embargo, no encontré ninguna comparación entre la arquitectura EventBus yRXJava. Por lo tanto, está claro que tanto EventBus como RXJava son mejores que el patrón de observación, peroque es mejor en aplicaciones de un solo hilo en términos de claridad de código y mantenibilidad?
Si entiendo correctamente el principal punto de venta deRXJava es que puede usarse para producir aplicaciones receptivas si hay operaciones de bloqueo (por ejemplo, esperando la respuesta de un servidor).
Pero no me importa en absoluto la asicronicidad, lo único que me importa es mantener el código limpio, desenredado y fácil de razonar en unaplicación de un solo hilo.
En ese caso, ¿es mejor usar RXJava que EventBus?
Creo que EventBus sería una solución más simple y limpia y no veo ninguna razón por la que deba usar RXJava para unaplicación de un solo hilo a favor de una arquitectura simple de EventBus.
¡Pero podría estar equivocado!
Corríjame si me equivoco y explique por qué RXJava sería mejor que un simple EventBus en caso de unaplicación de un solo hilo donde no se realizan operaciones de bloqueo.