java – 为什么人们在代码中使用消息/事件总线?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 为什么人们在代码中使用消息/事件总线?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1670字,纯文字阅读大概需要3分钟。
内容图文
![java – 为什么人们在代码中使用消息/事件总线?](/upload/InfoBanner/zyjiaocheng/711/d239b8195f3c4e24b1b35407296a7824.jpg)
我认为您已经听说过消息/事件总线,它是系统中所有事件流动的单一位置.在计算机的主板和LAN网络中可以找到类似的架构.这对于主板和网络来说是一个很好的方法,因为它减少了电线的数量,但它对软件开发有好处吗?我们没有像电子产品那样的限制.
消息总线/事件总线的最简单实现可以是:
class EventBus {
void addListener(EventBusListener l}{...}
void fireEvent(Event e) {...}
}
发布事件是通过bus.fireEvent(事件)完成的,接收消息由bus.addListener(侦听器)启用.这种体系结构有时用于软件开发,例如MVP4G为GWT实现类似的消息总线.
活跃项目:
>谷歌Guava EventBus
> MBassador by Benjamin Diedrichsen
> Mycila PubSub by Mathieu Carbou
> mvp4g Event Bus
> Simple Java Event Bus
休眠/死亡项目:
> Sun / Oracle JavaBeans InfoBus
> https://eventbus.dev.java.net/ [链接断开]
它只是流行的Observer(Listener)模式“全局” – 系统中的每个对象都可以监听每条消息,我认为这很糟糕,它打破了封装原则(每个对象都知道所有内容)和单一责任原则(例如,某些对象需要一种新类型的消息,事件总线通常需要更改,例如在Listener类中添加一个新的Listener类或一个新方法.
由于这些原因,我认为,对于大多数软件来说,Observer模式比事件总线更好.您如何看待事件总线,它对典型应用程序有什么好处?
编辑:我不是在谈论像ESB这样的“大型”企业解决方案 – 它们可能很有用(ESB提供的内容远远超过事件总线).我在询问有关在“常规”Java代码中使用消息总线进行对象到对象连接的有用性 – 有些人这样做,请查看上面的链接.事件总线可能是电话到电话通信或计算机到计算机通信的最佳解决方案,因为网络中的每个电话(或计算机)通常可以相互通信,并且总线减少了电线的数量.但是对象很少相互交谈 – 一个对象可以拥有多少合作者 – 3,5?
解决方法:
有些人喜欢它,因为它是Facade pattern或Mediator pattern的体现.它集中了交叉活动,如日志记录,警报,监控,安全等.
有些人不喜欢它,因为它通常是单身人士的失败点.每个人都必须了解它.
内容总结
以上是互联网集市为您收集整理的java – 为什么人们在代码中使用消息/事件总线?全部内容,希望文章能够帮你解决java – 为什么人们在代码中使用消息/事件总线?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。