The observer pattern (a subset of the publish/subscribe pattern) is a software design pattern in which an object, called the subject, maintains a list of its dependants, 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.
Pic1. Subject-Observer relationship in Observer Pattern
Pic2. UML Diagramm of Observer Pattern
Sources: