Observer Design Pattern
Behavioral design pattern.
Favor composition over inheritance.
program to interface not implementation.
Observer pattern defines one to many dependency between a set of objects so that when object(Subject) changes state,all of its dependent(Observer) are notified and update automatically.
java.util.Observable
Model-View-Controller (MVC) frameworks also use Observer pattern.
Java Message Service (JMS) uses Observer pattern.
Head First Design Patterns.