Observer pattern
Mediator Pattern
Command
Iterator