由于标题说明您何时会建议使用mediator design pattern,并且您认为它在哪里使用不正确?
答案 0 :(得分:19)
当对象通信的复杂性开始阻碍对象可重用性时使用中介。这种复杂性通常出现在视图实例中,尽管它可能真的在任何地方。
滥用调解员可能会导致调解员同事班级的界面瘫痪。
谈论滥用模式似乎有点滑稽。如果您的实现遵循该模式,那么您已经使用了该模式。否则,你没有。换句话说,如果您的调解员正在做其他事情,那么它可能不是调解员。模式由它们的作用,它们实际上是什么来定义。事物的名称只是标签。
要问自己的真正问题是,您的模式实现是否符合模式对您设计的承诺。中介模式旨在在无法管理的情况下封装复杂的对象间通信。如果它没有完成,或者没有做得很好,你可以说调解员被滥用了。在某些时候,它变成了价值判断。
答案 1 :(得分:2)
我用它来处理swing应用程序。
当我构建GUI时,我不喜欢每个控件彼此了解,因为这需要子类化。
相反,我有一个包含监听器和小部件的Main对象,让它在不同的控件,按钮,文本字段等之间进行调解。
答案 2 :(得分:1)
调解员基本上也是一个事件泵。 GUI和游戏中非常常见的模式。
此外,我之前使用过mediator在非常混乱的系统和遗留框架之间进行通信。