What is the Observer Design Pattern?

The Observer design pattern deals with the problem of how an "observable object" can notify several independent and loosely coupled "observer objects" that it has changed, so that they may update themselves accordingly.

Here is the basic formulation of the Observer design pattern: