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