Observer PatternSource: comp.objectDate: 09-Oct-97
In MS Windows 95 or Windows NT, one can easily launch many independently developed applications which each display a slider/scale widget showing the soundcard volume, for example. If the volume is changed by moving any of these sliders/scales, all the other sliders/scales IMMEDIATELY reflect the change. Is there a commonly used programming method whereby, if an object has visual representations in one or more windows [...], that when the value of that object changes [...], all its visual representations are informed of, and display the new value?
The Observer pattern describes how to establish these relationships. The key objects in this patterns are subject and observer. A subject may have any number of dependent observers. All observers are notified whenever the subject undergoes a change in state. In response, each observer will query the subject to synchronize its state with the subject's state. This kind of interaction is also known as publish-subscribe. The subject is the publisher of notifications. It sends out these notifications without having to know who its observers are. Any number of observers can subscribe to receive notifications. Complete description of the Observer pattern Another description of the Observer pattern
John Vlissides, The Trouble with Observer Constantin Szallies, On Using the Observer Design Pattern Dirk Riehle, The Event Notification Pattern
|