2008-12-17 17 views

Respuesta

19

Use un mediador cuando el complejidad del objeto de comunicación comienza a obstaculizar reutilización de objetos. Este tipo de complejidad a menudo aparece en instancias de vista, aunque realmente podría estar en cualquier parte.

El uso incorrecto de un mediador puede dañar las interfaces de las clases de colega del mediador.

Parece un poco raro hablar sobre el uso indebido de un patrón. Si su implementación sigue el patrón, entonces ha usado el patrón. De lo contrario, no lo has hecho. En otras palabras, si su mediador está haciendo otra cosa, entonces probablemente no sea un mediador. Los patrones se definen por lo que hacen, lo que en realidad son. Los nombres de las cosas son simplemente etiquetas.

La verdadera pregunta que debe hacerse es si su implementación de un patrón cumple las promesas del patrón para su diseño. El patrón del mediador tiene como objetivo encapsular la comunicación compleja entre objetos cuando se está volviendo inmanejable. Si no lo ha logrado o no lo ha hecho muy bien, podría decir que un mediador está siendo mal utilizado. En algún momento, se convierte en un juicio de valor.

+0

1+ para la respuesta – OscarRyz

+0

¿Podría dar más detalles sobre el uso incorrecto? Gracias – hhafez

+0

(se agregó una nota arriba) – keparo

1

Lo he usado para tratar con aplicaciones swing.

Cuando estoy construyendo una GUI no me gusta que cada control se conozca porque eso requeriría la creación de subclases.

En lugar de eso tienen un objetivo principal que contiene el oyente y los widgets y dejar que mediar entre los diferentes controles, botones, campos de texto, etc.

1

El mediador es también básicamente lo que es una bomba de eventos. Un patrón muy común en GUI y juegos.

También he usado el mediador anteriormente para comunicarme entre sistemas muy dispar y marcos heredados.

+0

Event-Pump == Event-Hub, ¿verdad? ¿Simplemente un sistema de autobuses, básicamente? ¿O más bien Mediación dirigida por eventos (solicitudes de rutas)? – Cody

Cuestiones relacionadas