复杂事件处理
问题描述:
在设计事件处理系统时需要一点建议。 从高级别上讲,我的Java服务器接收到各种请求,执行并响应(同步和异步)给它们。复杂事件处理
的流程如下:
a)低级别类从客户机接收该事件。这个类有一个MessageRouter类的引用。一旦它得到事件,它就简单地调用MessageRouter上的路由(事件事件)。
b)MessageRouter类将事件排队,并在一个单独的线程中确定消息的类型,找到合适的Handler并将消息传递给它。
c)处理程序执行消息。
d)ResponseRouter收集响应并将其写回。
我的问题是:
1)我应该如何设计C),因为我需要4-5其他“经理”之类的类的引用来执行请求。另外,应该c)参考d)将响应路由回去?
2)同样,d)需要引用其他类来回写响应,因为它们可以同步和异步完成。 ResponseRouter是否需要引用它所需的所有类?
主要是,我正在寻找一种设计模式(或它们的组合)以高效和优雅的方式执行事件及其响应。
答
至于对Q2的回答,因为可以执行异步处理程序,所以我建议在MessageRouter中处理请求和响应可能更直接,可能引用另外两个实现RequestRouter和ResponseRouter接口的对象。
处理程序完成后,它可以以同步或异步方式将结果返回给MessageRouter。
这种方式处理程序不需要引用ResponseRouter。
我不完全理解那些'经理'类...更多处理程序?例如IORecievers是一些http门异步/同步;并且handler1将数据加载到对象中,handler2执行一些业务逻辑处理程序3将数据写回到存储区,handler4创建响应html等? – 2012-07-16 20:20:01