Vengo a Java desde el mundo C# donde el patrón Observer se implementa como una construcción de lenguaje de primera clase con la palabra clave event
.Alternativa a la clase observable de Java?
Veo que Java tenía la clase Observable
desde los primeros días, pero claramente tiene problemas de implementación y no parece ser ampliamente utilizado. Hasta ahora, he estado implementando mi propio patrón Observer en mi código Java, pero no puedo evitar pensar que debe haber una mejor alternativa que desarrollar siempre este código repetitivo. Existen las clases de Escucha en Swing pero no parecen apropiadas para códigos que no sean Swing.
¿Cuál es la solución recomendada para este problema tan común? Las bibliotecas de terceros están bien conmigo.
¿Por qué las clases de oyentes no son apropiadas para el código que no es Swing? – Jeffrey
Parece que todas las interfaces y clases derivadas de EventListener están en los paquetes Swing y AWT. Como están en un paquete que es responsable de la IU, usarlos para la IU no me parece mal. ¿Los EventListeners se usan fuera de estos contextos de IU? – HolySamosa
¿Quién puede impedirte obtener tus propias clases de oyente? 'EventListener' y' EventObject' están ambos en 'java.util', no están obligados a AWT o Swing de ninguna manera. – Jeffrey