A发布B,C和D对象感兴趣的东西,而E,F和G不在乎它。

当A说出一些话时,只有B,C,D应该得到此“消息”。

哪种设计模式可以最好地模拟这一点?

**
如何在不使用Tibco的情况下使用Tibco?

最佳答案

在普通的J2SE应用程序中,事件的发布者和事件的订阅者是同一进程空间内的对象,这将是观察者模式。

订阅者通常会通过调用诸如addListener()之类的特定方法并实现特定的接口来通知发布者他们想监听事件。

因此,在您的示例中,我们创建一个接口NumberEventListener,该接口具有一个onNumberEvent(int number)方法。

您的侦听器都将实现NumberEventListener并在发布者对象上调用addListener()。

过滤可以应用于发布者端或侦听器端。因此,对于您的实现,您可以将addListener()方法设置为addListener(NumberEventListener listener,int min,int max),并且仅当数字介于min和max之间时才调用侦听器。但是,这不是典型的实现,因为它会使发布者的代码更加复杂,并且您实际上并不能变得灵活。

在这样的示例中,通常,侦听器会接收所有各自的事件,并丢弃他们不感兴趣的事件。但是,这在一定程度上取决于实际的实际情况。

侦听器是“同时”还是按顺序获得通知取决于事件的发布者是按顺序调用侦听器还是在单独的线程中调用侦听器。

10-08 06:48