Observer
Where an abstraction has two aspects depending on each other.
Where a change to one object requires changing others.
Where an object should notify others without knowing what these other objects are.
Smalltalk’s MVC (Model-View-Controller).
Subject and observers may vary independently.
Any number of observers can be defined and added.
Different observers provide different views of the change.