He tenido un mini-discussion on the topic en otro hilo, y me gustaría tener la opinión de la gente sobre los lados "malos" de los sujetos.RX Temas: ¿se deben evitar?
Las personas que frecuentan el foro de RX saben que E.Meijer does not like Subjects. Si bien tengo un profundo respeto por la opinión del creador de RX, durante un par de años he estado utilizando temas bastante extensos en varios proyectos y no he tenido ningún problema arquitectónico o error debido a ellos.
El único "inconveniente" con los sujetos que puedo nombrar es que no son "reutilizables": después de haber completado un observable en un tema, necesita volver a crear una instancia antes de que los nuevos suscriptores puedan recibir eventos.
"Code smell" y "Do not like them" necesitan ser respaldados por ejemplos "pragmáticos": ¿puede poner en conocimiento de usted situaciones posibles cuando utiliza un Subject que puede provocar una falla o un problema? O tal vez piense que son fáciles e inofensivos por completo, luego intente definir un área donde se usarán.
Suena razonable. Excepto que sugeriría que ya hay formas de envolver Eventos, es decir, Observable.FromEvent (Patrón), que de nuevo es más preferible a los temas. –
Creo que no solo se trata simplemente de envolver los eventos y sincronizar llamadas, sino también de usar datos de ellos. Por ejemplo, al envolver el par de llamadas asíncronas 'BeginRead' /' EndRead' - 'EndRead' solo devuelve el número de bytes leídos, para obtener los datos reales debe acceder al conjunto de bytes variable pasado a' BeginRead'. – Tyson
Buena explicación. – axel22