Qual é a diferença entre os padrões editor-assinante e reator?

Respostas:

12

Como posso ver no link, o padrão PubSub não é um padrão OOP, mas sim um padrão de mensagens , que é um padrão de arquitetura de rede.

O padrão do reator é algo relacionado à manipulação de solicitações dos servidores com um loop de eventos de thread único . Novamente, o link mostra alguns bons exemplos como Node.js, Netty, Twisted etc.

Finalmente, o Observer é um padrão de design OOP que descreve uma maneira de interação entre objetos no código OO.

Portanto, esses três padrões são de domínios diferentes.

scriptin
fonte
6

Reator = loop de evento com thread único que recebe e processa solicitações. Essas solicitações podem ser carregadas em lotes de um arquivo, via SMTP e / ou HTTP. As respostas processadas simultaneamente são entregues quando prontas, e não sequencialmente.

Os editores emitem. Os assinantes consomem.

Editores + Assinantes = Padrão do observador (Padrões de design dos chefes primeiro). Os observadores disparam sequencialmente e geralmente bloqueiam até serem concluídos.

Gerry King
fonte
2

O PubSub está mais relacionado às Filas de Mensagens (MQs). Tem a ver com a forma como os nós recebem mensagens assíncronas em um sistema distribuído.

O padrão do reator tem mais a ver com eventos assíncronos. Por exemplo, soquetes sem bloqueio usam o padrão do reator para fornecer eventos de rede: LER, ESCREVER, CONECTAR, ACEITAR

Você pode verificar o CoralReactor para entender melhor o padrão do reator.

Disclaimer : Eu sou um dos desenvolvedores do CoralReactor.

rdalmeida
fonte