The
observer pattern is a
software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their
methods. It is mainly used to implement distributed
event handling systems. The Observer pattern is also a key part in the familiar
model–view–controller (MVC) architectural pattern. The observer pattern is implemented in numerous
programming libraries and systems, including almost all
GUI toolkits.