Observer
The Observer pattern allows one object to register with another to receive messages.