Patrón de diseño de observador frente a "oyentes"

Me parece que el patrón de diseño de Observer como se describe en GOF es realmente lo mismo que los oyentes que se encuentran en varios kits de herramientas. ¿Hay alguna diferencia entre los conceptos, o los oyentes y los observadores son realmente la misma cosa?

(No estoy buscando ninguna implementación específica de lenguaje de computadora, solo quiero entender la diferencia (si la hay) desde el punto de vista del diseño. Sí, sé que hay varias respuestas a preguntas similares en SOF, pero están enraizadas en preguntas específicas sobre idiomas específicos: estoy buscando una respuesta de diseño, no una respuesta de idioma).

Respuestas a la pregunta(3)

Su respuesta a la pregunta