Chain of Responsibility职责链模式也应该属于这类,当事件到达后,让这个事件在我们提供的一批处理器中逐个挑选适合的处理器进行处理,这个模式缺点是显然的,性能丧失在逐个挑选 上,一般不推荐使用,这个模式适合在我们无法预知发生的事件内容时使用,因为不知道发生事件的具体情况, 我们就无法在程序运行前事先为其指派相应的处理器,只能靠运行时,事件自己去摸索“撞运气”。
A. NotificationBroadcaster接口, 事件广播发出者, 这个接口允许监听者在需要发出的notification中注册他们感兴趣的事件。 B. 通用事件(Notification),这是我们要传输的事件。 Notification事件能被直接使用,也能成为子类,这些都依赖于随同事件传输的信息。 通过使用通用事件类型,监听者将能接受来自广播者所有类型的事件。 C. NotificationListener接口, 事件监听者或者接受者, 用于接受来自广播者的任何notification信号。 D. NotificationFilter接口, 这个接口为notification的监听者提供一个对发出事件的过滤器。 E. NotificationEmitter 接口, 扩展了NotificationBroadcaster接口,当删除监听者时允许更多的控制功能。
JMS可实现同步或异步的事件触发机制,分别是通过Poin to Point(拉方式)和Pubilsh/Subscibe(推方式)具体完成,在分布式计算环境中,异步机制是非常重要,可以起到解耦作用,因为分布环境中单点错误或通讯问题是经常发生的,整个分布式系统不能总是依靠同步机制来可靠地传递事件或notification.