java - 中介对象如何工作?它背后的想法是什么?

标签 java mediator

我对调解器对象很感兴趣,因为它听起来很有用,但为了学习如何与该对象交互和构建该对象而破译代码示例却让我望而却步。我喜欢代码示例,如果它们带有一些解释,无论多么简短。当我构建中介对象时,有人能够解释我正在构建什么吗?

中介对象会是一种处理类之间发送的 Action 事件的方法吗?还是中介对象只是更好地服务于将类似代码整合到一个方便的地方?

我不知道它是为了方便而实用,还是因为没有其他方法可以做它所做的事情而实用。任何细节,无论多么“简单”,都将是最优秀的。提前致谢。

最佳答案

中介对象打算本身什么都不做。你不应该将你已经拥有的任何逻辑移到其中,除了一些多路复用/多路分解(当一个对象向多个其他对象发送相同的消息时)。中介者只是一个外部接口(interface)(如果它同时充当外观),并且绝对是预先存在的对象之间的消息传递 channel 。

同样,在您已经意识到需要这样的消息传递 channel 之前,不应创建调解器。这样的需求看起来如何?您已经拥有一组开始以越来越复杂的方式相互调用的对象。这些对象正在存储对彼此的引用;此类引用的数量已经超过此类对象本身的数量。

因此,不是每个对象都与每个对象对话(使用二次引用和复杂的交互图),而是将星形拓扑引入交互;每个人都直接与调解员交谈。然后更容易实例化、监视、调试、扩展、多态化...

不要过早开始引入中介体,否则整体复杂性会增加而不是降低。

关于java - 中介对象如何工作?它背后的想法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15564729/

相关文章:

java - 在使用普通邮件通过 Hotmail 发送电子邮件时出现 org.apache.commons.mail.EmailException

java - 关闭 SQL 连接 Java Webservice

c# - 如何减少 Controller 和业务层服务中构造函数参数的数量?

c# - 为什么要为 Mediator 提供 INotification/IRequest 标记接口(interface)?

java - 难以导航与另一个 2d int 数组相关的 2d String 数组

java - Hibernate限制在列表中使用like子句进行搜索

java - 如何检查NetBeans 12.2中运行的maven版本?

structuremap - ViewModels 作为 MediatR、StructureMap、Caliburn.Micro 的处理程序

wpf - 不同库中 ViewModel 和 View 之间的中介者模式

c++ - 来自抽象类的 shared_ptr