Versioni
| Conosciuto anche comeNon ha altri nomi. IntentoIl design pattern Mediator è utile quando si desidera implementare una funzionalità componendo il comportamento di diversi oggetti. La relazione tra gli oggetti che implementano i comportamenti che si desidera comporre (i colleague) e l'oggetto che compone questi comportamenti (il mediator) viene stabilita in modo dinamico ossia a run-time. Per questo, questo design pattern è classificato rispetto allo scopo (vedi ClassificazioneDeiDesignPattern#ClassiOggetti) come rivolto agli oggetti. Rispetto al fine questo design pattern è classificato tra i ClassificazioneDeiDesignPattern#Comportamentali . Diagramma UML
Un'altro diagramma equivalente qui MotivazioneUna consegenza di quando si desidera implementare una funzionalità componendo i comportamenti di diversi oggetti o equivalentemente si desidera scomporre un comportamento implementato da un oggetto in diversi oggetti è quella di avere la necessità che i diversi oggetti comunichino tra loro. Se la comunicazione viene implementata creando una RelazioneDiDipendenza ci sarà un alto accoppiamento tra gli oggetti questo frena tanto il riutilizzo che l'evoluzione degli oggetti e della loro logica di interazione. Il design pattern Mediator assolve alla necessità di mettere in comunicazione i diversi oggetti e definire la logica di interazione mantenendo i diversi oggetti disaccoppiati.
Esempi d'uso in .NETUn esempio d'uso si ha nei form Windows e nelle pagine ASP.NET: il WinForm o WebForm è il mediator mentre i controlli fanno la parte dei colleague. Il form una RelazioneDiContenimento verso i controlli e tramite questa li referenzia, in questo caso i controlli comunicano con il form applicando il PatternObserver invece che attraverso la classe astratta Mediator. Note sulla implementazione in .NETCome nei form windows e web l'uso di eventi può essere comodo in alternatica all'uso di una interfaccia o classe base astratta per mettere in comunicazione i colleague con il mediator. Del codice .NET di esempio è disponibile qui . Relazione con altri design patternIl mediator può essere implementato come un observer descritto nel PatternObserver. Vedi la mappa della RelazioneTraDesignPattern. ApprofondimentiIl design pattern Mediator centralizza la logica con cui i colleague comunicano e questo ne semplifica la gestione. La comunicazione può essere bidirezionale ossia dal mediator veso i colleague e viceversa. Domande di approfondimento
Linkhttp://c2.com/cgi/wiki?MediatorPattern | UGIdotNETWikiUGIdotNETWiki è il WikiWiki italiano dedicato a .NET Se è la prima volta che senti parlare di Wiki, leggi il BenvenutoAiVisitatori e WikiInUnMinuto, oppure il ManualePassoPassoDelWiki. Argomenti Recenti | ||||||||||||||||||||||||||||||||||||||
| © 2008 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali | ||||||||||||||||||||||||||||||||||||||||