En general, debe actualizar todo lo que se observa cuando recibe una llamada para actualizar(). si eso no es práctico, puede pasarle una pista a notifyObservers().
la banda-de-libro dice que una de las consecuencias del patrón de observador es:.
"cambios inesperados porque los observadores no tienen conocimiento de la presencia del otro, que puede ser ciego para el costo final de cambiar El sujeto. Una operación aparentemente inocua sobre el tema puede causar una cascada de actualizaciones para los observadores y sus objetos dependientes. Además, los criterios de dependencia que no están bien definidos o mantenidos generalmente conducen a actualizaciones falsas, que pueden ser difíciles de rastrear.
Este problema se ve agravado por el hecho de que el protocolo de actualización simple no proporciona detalles sobre lo que cambió en el sujeto. Sin protocolo adicional t o ayudar a los observadores a descubrir qué cambió, es posible que se vean obligados a trabajar duro para deducir los cambios. " también en implementación, dicen:
" Evitar protocolos de actualización específicos del observador: los modelos push y pull. Las implementaciones del patrón Observer a menudo hacen que el sujeto difunda información adicional sobre el cambio. El sujeto pasa esta información como un argumento para actualizar. La cantidad de información puede variar ampliamente.
En un extremo, que llamamos el modelo push, el sujeto envía a los observadores información detallada sobre el cambio, lo quieran o no. En el otro extremo está el modelo de atracción; el sujeto envía nada más que la notificación más mínima, y los observadores piden detalles explícitos a partir de entonces.
El modelo de atracción enfatiza la ignorancia del sujeto sobre los observadores, mientras que el modelo de empuje supone que los sujetos saben algo sobre las necesidades de los observadores. El modelo push podría hacer que los observadores sean menos reutilizables, porque las clases de Subject hacen suposiciones sobre las clases de Observer que pueden no ser siempre ciertas. Por otro lado, el modelo de extracción puede ser ineficiente, porque las clases de Observador deben determinar qué cambió sin la ayuda del Sujeto. "