As the title states when would you recommend the use of the mediator design pattern and where do you see it used incorrectly?
Use a mediator when the complexity of object communication begins to hinder object reusability. This type of complexity often appears in view instances, though it could really be anywhere.
Misuse of a mediator can result in crippling the interfaces of the mediator's colleague classes.
It seems a little funny to talk about misusing a pattern. If your implementation follows the pattern, then you've used the pattern. Otherwise, you haven't. In other words, if your mediator is doing something else, then it probably isn't a mediator. Patterns are defined by what they do, what they in fact are. The names of things are simply labels.
The real question to ask yourself is whether your implementation of a pattern fulfills the pattern's promises for your design. The mediator pattern aims to encapsulate complex inter-object communication when it is becoming unmanageable. If it hasn't accomplished this, or hasn't done it very well, you could say that a mediator is being misused. At some point, it becomes a value judgement.
I have used it to deal with swing apps.
When I'm building a GUI I don't like each control knowing each other because that would require subclassing.
Instead I have a Main object which contains the listener and the widgets and let it mediate between the different controls, buttons, textfields etc.
The mediator is also basically what an event-pump is. A very common pattern in GUI's and Games.
Also I've used mediator before to communicate among very dispar systems, and legacy frameworks.
When you are dealing with multiple objects and they need to communicate with each other but you want them not to know about each other directly
© 2022 - 2024 — McMap. All rights reserved.