复杂事件处理

时间:2012-04-28 19:25:59

标签: java event-handling design-patterns

需要一些关于设计事件处理系统的建议。 在较高的层次上,我的Java服务器接收各种请求,执行并响应(同步和异步)。

流程如下:

a)低级别课程从客户端接收事件。此类具有对MessageRouter类的引用。一旦它获得事件,它只需在MessageRouter上调用route(Event事件)。

b)MessageRouter类对事件进行排队,并在一个单独的线程中确定消息的类型,找到相应的Handler并将消息传递给它。

c)处理程序执行消息。

d)ResponseRouter收集响应并将其写回。

我的问题是:

1)我应该如何设计c)因为我需要引用4-5其他“Manager”类来执行请求。另外,c)是否应该引用d)将响应路由回来?

2)同样,d)需要引用其他类来回写响应,因为它们可以同步和异步完成。 ResponseRouter应该引用它需要的所有类吗?

主要是,我正在寻找一种设计模式(或它们的组合),以高效优雅的方式处理事件及其响应的执行。

1 个答案:

答案 0 :(得分:0)

至于Q2的答案,因为处理程序可以执行异步,我建议处理请求和响应在MessageRouter中可以更简单地完成,可能引用其他2个实现RequestRouter和ResponseRouter接口的对象。

当处理程序完成后,它可以以同步或异步方式将结果返回给MessageRouter。

这样处理程序不需要对ResponseRouter的引用。