- Mediator pattern