Figure 1. Common Pattern
The observer design pattern implemented as a UML class diagram. (Source: Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma et al. [Addison-Wesley Professional Computing Serires, 1995])