In un'applicazione GUI (per organizzare le immagini), utilizzo il Pattern osservatore (o qualcosa di simile al controller vista modello (vista)) per informare gli altri componenti sulle modifiche.
Assumendo tre componenti A, B, C che mostrano aspetti diversi di alcuni oggetti, posso attivare "azioni batch" che influenzano molti oggetti in A e B. Ogni cambiamento porterà ad un aggiornamento dell'insieme di oggetti in qualsiasi o tutti A, B, C, a seconda del cambiamento.
Se A fa scattare un cambiamento di tre oggetti, B e C mostreranno tre cambiamenti successivi ciascuno. Oltre a prendere tempo, è tremolante l'interfaccia utente.
Ciò di cui ho bisogno è un modo globale (argh!) che dice che durante l'azione batch, non dovrebbero verificarsi modifiche all'interfaccia utente. Dal momento che non vorrei limitare l'utilizzo di ObserverPattern alle cose dell'interfaccia utente, non vorrei interrompere l'intero pattern, ma solo la parte relativa all'interfaccia utente.
Qualche idea? Quando mi sono imbattuto in questa situazione, stavo pensando che fosse un requisito normale e mi sono chiesto perché non avevo mai trovato una soluzione.