2

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

流程如下:

a) 低级类从客户端接收事件。此类具有对 MessageRouter 类的引用。一旦它得到事件,它就简单地调用 MessageRouter 上的 route(Event event)。

b) MessageRouter 类将事件排队并在一个单独的线程中,确定消息的类型,找到适当的处理程序并将消息传递给它。

c) 处理程序执行消息。

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

我的问题是:

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

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

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

4

1 回答 1

0

至于 Q2 的答案,因为处理程序可以异步执行,我建议在 MessageRouter 中处理请求和响应会更直接,也许可以参考实现 RequestRouter 和 ResponseRouter 接口的其他 2 个对象。

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

这种方式处理程序不需要对 ResponseRouter 的引用。

于 2014-12-09T15:43:27.737 回答