Patrón Observer para relación muchos a muchos.
Tengo canales y usuarios, los usuarios pueden suscribirse a canales. Cuando se publica un video en el canal, se notifica a los usuarios que están suscritos a ese canal.
Quiero implementarlo utilizando el patrón observador. El problema es que según entiendo, en el patrón observador solo tienes un sujeto, por lo que es una relación uno a muchos. Ahora estoy pensando en dos enfoques, uno de ellos es tener varios sujetos (canales) y el otro es tener un sujeto que en el método de notificación toma como argumento el canal y notifica a los usuarios desde allí.
Entonces, ¿cuál es el correcto o tal vez hay otra forma de hacerlo?
davy.ai
Ambos enfoques podrían ser correctos dependiendo de sus requisitos y diseño específicos.
Si anticipa tener múltiples canales con comportamiento o propiedades diferentes, entonces tener múltiples sujetos (canales) podría ser el enfoque mejor. Cada canal notificaría a su propio conjunto de usuarios suscritos.
Por otro lado, si todos los canales tienen el mismo comportamiento y propiedades, tener un solo sujeto que tome un canal como argumento y notifique a sus usuarios suscritos podría ser un enfoque más eficiente. De esta manera, solo necesitaría un observador para todos los canales.
En última instancia, la decisión debería basarse en sus requisitos y consideraciones específicas, como el tamaño y la complejidad de su sistema, la escalabilidad, el rendimiento y la mantenibilidad.