一个观察者对许多主题的正确设计模式

Proper design pattern for many subjects to one observer

在观察者模式中,主体和观察者之间通常是一对多的关系(有一个主体和多个观察者)。

但我有一个问题,在我的实现中,有许多主题(例如:A、B、C)正在返回对象,但只有一个观察者(例如:O)将这些主题的输出带入一个队列,一个接一个地处理。

我可以为此使用哪种设计模式/范例?

如果您需要使用队列,您可以使用 Producer/Consumer-pattern。

与观察者模式的区别在于,观察者通常知道可观察对象。而在 Producer/Consumer-pattern 中,观察对象(对象、信息、事件的生产者)和观察者(消费者)完全解耦。 无论有多少(甚至没有)生产者,消费者都不会受到影响。

另一个不同当然是,消费者必须主动轮询队列。

这种模式的"challenge"是两端访问队列的正确同步。但是当然有图书馆可以处理这个问题。