Design patterns 异步观察者模式

Design patterns 异步观察者模式,design-patterns,language-agnostic,asynchronous,observer-pattern,Design Patterns,Language Agnostic,Asynchronous,Observer Pattern,我想找到其他方法来实现异步观察者模式,而不使用消息队列。最受欢迎的是想法和例子。:-)(将此视为头脑风暴会议) PS语言偏好取决于您。在Java中,您可以将通知任务提交给执行器,该执行器管理一组线程中的单个线程,这些线程只负责处理可观察事件。实际上,您仍然有一个队列,但它不是传统意义上的“消息队列”,而是一个通知任务队列。在.NET中,您可以使用最明显、最简单的方法是为注册到主题的每个观察者在主题中启动一个新线程,并让这些线程运行每个观察者的“update()”方法 更复杂的方法是使用中间件类作

我想找到其他方法来实现异步观察者模式,而不使用消息队列。最受欢迎的是想法和例子。:-)(将此视为头脑风暴会议)


PS语言偏好取决于您。

在Java中,您可以将通知任务提交给
执行器,该执行器管理一组线程中的单个线程,这些线程只负责处理可观察事件。实际上,您仍然有一个队列,但它不是传统意义上的“消息队列”,而是一个通知任务队列。

在.NET中,您可以使用最明显、最简单的方法是为注册到主题的每个观察者在主题中启动一个新线程,并让这些线程运行每个观察者的“update()”方法

更复杂的方法是使用中间件类作为总线让主体“发送事件”。这个中间件类将使用多个线程来调用所有“已注册”的观察者,但这开始偏离经典的观察者模式。无论如何,使用这种方法可以防止主题处理线程

这种方法非常灵活,可以扩展到不同的“事件类型”,许多主体和观察者注册到中间件类中,以处理任意类型的事件