正如标题所述,您何时会推荐使用中介设计模式以及您认为它在哪里使用不正确?
当对象通信的复杂性开始阻碍对象可重用性时,使用中介者。这种类型的复杂性经常出现在视图实例中,尽管它实际上可能存在于任何地方。
滥用中介者可能会导致中介者同事类的接口瘫痪。
谈论滥用模式似乎有点有趣。如果您的实现遵循该模式,那么您就已经使用了该模式。否则,你还没有。换句话说,如果您的调解员正在做其他事情,那么它可能就不是调解员。模式是由它们所做的事情以及它们实际上是什么来定义的。事物的名称只是标签。
真正要问自己的问题是,您对模式的实现是否满足了模式对您的设计的承诺。中介者模式旨在在复杂的对象间通信变得难以管理时对其进行封装。如果它没有做到这一点,或者做得不好,你可以说调解者被滥用了。在某些时候,它会变成一种价值判断。
我用它来处理 swing 应用程序。
当我构建 GUI 时,我不喜欢每个控件彼此了解,因为这需要子类化。
相反,我有一个 Main 对象,其中包含侦听器和小部件,并让它在不同的控件、按钮、文本字段等之间进行调解。
中介者基本上也是事件泵。 GUI 和游戏中非常常见的模式。
我之前也使用过中介器在非常不同的系统和遗留框架之间进行通信。
当您处理多个对象并且它们需要相互通信但您不希望它们直接相互了解时