Wie der Titel sagt, würden Sie die Verwendung des Mediator-Entwurfsmusters empfehlen und wo sehen Sie, dass es falsch verwendet wird? ?
Verwenden Sie einen Mediator, wenn die Komplexität der Objektkommunikation beginnt, die Wiederverwendung von Objekten zu behindern . 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 wenig lustig zu sein, über das Mißbrauch eines Musters 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, die Sie sich stellen sollten, 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.
Ich habe es benutzt, um mit Swing-Apps umzugehen.
Wenn ich eine GUI erstelle, mag ich nicht, dass jede Steuerung sich kennt, weil das Subclassing erfordern würde.
Stattdessen habe ich ein Main-Objekt, das den Listener und die Widgets enthält und zwischen den verschiedenen Steuerelementen, Schaltflächen, Textfeldern usw. vermitteln kann.
Der Mediator ist im Grunde auch eine Event-Pumpe. Ein sehr häufiges Muster in GUI's und Games.
Ich habe auch Mediator zuvor verwendet, um zwischen sehr unterschiedlichen Systemen und Legacy-Frameworks zu kommunizieren.
Tags und Links language-agnostic design-patterns mediator