2008-12-17 14 views

Antwort

19

Verwenden Sie einen Vermittler, wenn die Komplexität der Objektkommunikation vermitteln Objektwiederverwendbarkeit. Diese Art von Komplexität tritt oft in View-Instanzen auf, obwohl sie wirklich überall sein könnte.

Der Missbrauch eines Mediators kann dazu führen, dass die Schnittstellen der Kollegenkollegen des Mediators lahmgelegt werden.

Es scheint ein bisschen witzig zu sein, über ein falsches Muster zu sprechen. Wenn Ihre Implementierung dem Muster folgt, haben Sie das Muster verwendet. Sonst hast du nicht. Mit anderen Worten, wenn Ihr Mediator etwas anderes macht, dann ist es wahrscheinlich kein Mediator. Muster werden definiert durch was sie tun, was sie tatsächlich sind. Die Namen der Dinge sind einfach Etiketten.

Die eigentliche Frage ist, ob Ihre Implementierung eines Musters die Versprechen des Musters für Ihr Design erfüllt. Das Mediator-Muster zielt darauf ab, komplexe Inter-Objekt-Kommunikation zu kapseln, wenn es nicht mehr handhabbar ist. Wenn es das nicht oder nicht sehr gut gemacht hat, könnte man sagen, dass ein Mediator missbraucht wird. Irgendwann wird es ein Werturteil.

+0

1+ für die Antwort – OscarRyz

+0

könnten Sie mehr Details über den Missbrauch geben? Danke – hhafez

+0

(ein Hinweis oben hinzugefügt) – keparo

1

Ich habe es verwendet, um mit Swing-Apps umzugehen.

Wenn ich eine GUI erstelle, mag ich nicht, dass jede Steuerung sich gegenseitig kennt, weil das Subclassing erfordern würde.

Stattdessen habe ich ein Hauptobjekt, dessen enthält den Hörer und die Widgets und lassen Sie es beginnt zu hinder zwischen den verschiedenen Kontrollen, Knöpfe, Textfelder usw.

1

Der Vermittler ist auch im Grunde, was eine Ereignispumpe ist. Ein sehr häufiges Muster in GUI's und Games.

Auch ich habe schon Mediator verwendet, um unter sehr dispar Systeme und Legacy-Frameworks zu kommunizieren.

+0

Event-Pump == Event-Hub, richtig? Nur ein Bussystem, im Grunde? Oder eher Event-Driven Mediation (Anfragen routen)? – Cody

Verwandte Themen