BEHAVIORAL

Mediator

Definire un oggetto che incapsula come un insieme di oggetti interagisce. Mediator promuove loose coupling evitando che gli oggetti si riferiscano esplicitamente l'un l'altro.

Il Problema

Quando hai molti oggetti che comunicano tra loro, creando dipendenze complesse difficili da capire e mantenere.

La Soluzione

Creare oggetto Mediator che gestisce tutte le interazioni. Gli oggetti comunicano solo con il mediator, non direttamente tra loro.

Struttura

Mediator interface definisce metodi di comunicazione. ConcreteMediator coordina Colleague objects. Colleague conosce Mediator.

Partecipanti:
Mediator - interfaccia per comunicare con Colleague objects
ConcreteMediator - implementa comportamento cooperativo coordinando Colleague
Colleague - ogni classe Colleague conosce il suo Mediator
Esempi di Codice

Mediator per Chat Room

Chat room che media comunicazione tra utenti.

JAVASCRIPT
Loading...
Esempi nel Mondo Reale
Chat rooms / messaging systems
Air traffic control
MVC controller (mediates between Model and View)
Dialog boxes (coordina widgets)
Event bus systems
Quando Usarlo
Quando hai oggetti che comunicano in modi complessi
Quando riusare oggetti è difficile per troppe dipendenze
Quando comportamento distribuito tra classi deve essere personalizzabile
Quando vuoi centralizzare controllo su comunicazione
Quando NON Usarlo
Quando hai poche interazioni semplici
Quando il mediator diventa troppo complesso
Quando comunicazione diretta è più chiara
Pattern Correlati