请给出一个在现实世界中使用"中介者模式"的用例实例。
请给出一个在现实世界中使用"中介者模式"的用例实例。
四人帮喜欢从GUI中提取例子,因此他们的例子自然围绕着窗口、按钮、文本框、列表框等。如果每个小部件都直接与其他小部件通信,结果将是一个通信的蜘蛛网。限制每个小部件只与单个中介者通信简化了通信模式。也可以查看这个答案,其中有类似的解释。
对于四人帮之外的例子,对比中介者和外观的问题的前两个答案提到中介者作为记录的有效模式。此外,Spring Guru提到了Spring Framework中的一个例子。
在Spring MVC中,通过Spring MVC如何与控制器一起使用调度程序Servlet,展示了中介者模式的很好的例子。
别忘了 Kafka,它也是一个很好的例子。
可以将消息服务称为中介者模式的一种实现。
假设我想让Java应用程序中的两个组件通过JMS进行通信 - 组件A发布包含某种指令的消息到JMS提供程序;组件B订阅该JMS提供程序以检索消息并执行指令。组件A通过中介者与组件B进行通信。
这里有更多示例在这里。
空中交通管制系统就是其中之一。
这种模式在现实生活中被广泛使用,当你想要避免多对多的通信时。
另一个现实世界的例子,在大多数印度婚礼中,有一个调解人在新郎和新娘之间进行沟通,否则会有许多人互相交流不同的事情,没有人知道完整的细节。因此,当有许多参与者想要讨论一个主题并避免许多通信时,调解器模式是有用的。
Facebook或任何社交网络网站,许多人聚集在一起谈论一个话题,所以在这个Facebook/社交网络网站扮演调解角色。
另一个很好的例子是RabbitMQ开源消息代理库,它作为连接多个客户端/应用程序的“中介者”。
在这里,客户端或应用程序不知道谁将消耗所有消息。 RabbitMQ充当中介并将消息发布给已订阅的客户端。