需要一些关于设计事件处理系统的建议。 在较高的层次上,我的Java服务器接收各种请求,执行并响应(同步和异步)。
流程如下:
a)低级别课程从客户端接收事件。此类具有对MessageRouter类的引用。一旦它获得事件,它只需在MessageRouter上调用route(Event事件)。
b)MessageRouter类对事件进行排队,并在一个单独的线程中确定消息的类型,找到相应的Handler并将消息传递给它。
c)处理程序执行消息。
d)ResponseRouter收集响应并将其写回。
我的问题是:
1)我应该如何设计c)因为我需要引用4-5其他“Manager”类来执行请求。另外,c)是否应该引用d)将响应路由回来?
2)同样,d)需要引用其他类来回写响应,因为它们可以同步和异步完成。 ResponseRouter应该引用它需要的所有类吗?
主要是,我正在寻找一种设计模式(或它们的组合),以高效优雅的方式处理事件及其响应的执行。
答案 0 :(得分:0)
至于Q2的答案,因为处理程序可以执行异步,我建议处理请求和响应在MessageRouter中可以更简单地完成,可能引用其他2个实现RequestRouter和ResponseRouter接口的对象。
当处理程序完成后,它可以以同步或异步方式将结果返回给MessageRouter。
这样处理程序不需要对ResponseRouter的引用。