El mecanismo de observer es así:
update:
, y hay que implementarlo)changed:
y addDependent:
, que no hay que implementar pero sí usar)Al inicializar todo (antes de que empiece a funcionar) tenés que hacer:
observado addDependent: observador.
Después, el observado necesita avisar que él mismo cambió, y eso lo hace con:
self changed: #variableQueCambió
Pharo mágicamente le va a mandar el mensaje update:
#variableQueCambio
a todos sus observadores. Entonces, en cada observador tenés que definir el método:
update: nombreDeLoQueCambio
"acá hago lo que sea que quiera hacer el observer."
Algo común para hacer ahí es chequear si me interesa ese nombreDeLoQueCambio
, ó bien hacerle preguntas a mi observado (que me guardé de antemano).