In a GUI application (to organize images), I use the Observer Pattern (or anything similar to model-view-(view)controller) to inform other components about changes.
Assuming three components A, B, C which show different aspects of some objects, I can trigger "batch actions" which affect many objects in A and B. Each change will lead to an update of the set of objects in any or all of A, B, C, depending on the change.
If A now triggers a change of three objects, B and C will display three successive changes each. Apart from taking time, it's flickering the UI.
What I would need is some way of globally (argh!) saying that during the batch action, no UI changes should happen. Since I would not want to limit the usage of the ObserverPattern to UI stuff, I would like to not stop the entire pattern from working, but only the UI-relevant part of it.
Any idea? When I came across this situation, I was thinking it's a usual requirement, and I wondered why I haven't come across a solution before.