需要一些关于设计事件处理系统的建议。从高层次上讲,我的Java服务器接收各种请求,执行并(同步和异步地)响应它们。
流程如下:
a)低级类从客户端接收事件。此类有一个对MessageRouter类的引用。一旦它获得了事件,它就简单地调用MessageRouter上的路由(事件事件)。
b) MessageRouter类将事件排队,并在单独的线程中确定消息的类型,找到适当的处理程序并将消息交给它。
c)处理程序执行该消息。
d) ResponseRouter收集响应并将其写回。
我的问题是:
1)我应该如何设计c),因为我需要引用4-5个其他的“管理器”类来执行请求。另外,c)是否应该有对d)的引用以将响应路由回来?
2)类似地,d)需要引用其他类来写回响应,因为它们可以同步和异步完成。ResponseRouter是否应该引用它需要的所有类?
主要,我正在寻找一种设计模式(或它们的组合),以便以高效和优雅的方式执行事件及其响应。
发布于 2014-12-09 23:43:28
至于对Q2的回答,因为处理程序可以异步执行,所以我建议在MessageRouter中处理请求和响应会更简单,也许可以引用另外两个实现RequestRouter和ResponseRouter接口的对象。
当处理程序完成时,它可以以同步或异步方式将其结果返回给MessageRouter。
这样,处理程序就不需要引用ResponseRouter了。
https://stackoverflow.com/questions/10366803
复制相似问题