Um ouvinte para todos os pacotes vs ouvintes separados para lidar com tipos específicos
-
09-09-2019 - |
Pergunta
implementos XMPPConnection Smack uma maneira orientada a eventos de receber respostas XMPP de um servidor Jabber. O método addPacketListener (org.jivesoftware.smack.PacketListener, org.jivesoftware.smack.filter.PacketFilter) permite que você especifique seu próprio ouvinte personalizado. Estou mantendo código em que um PacketListener lida com todos os tipos de mensagens recebidas. No interesse de melhorar o design, (com um aceno para o Individual de Responsabilidade Princípio ), I planeja criar ouvintes separados que tipos alça específicas de pacotes. Isso é uma boa ideia ? Outra questão é que os mensagens pacote pode vir de muitos sistemas de mensagens instantâneas, por exemplo Yahoo, Google etc ...? Faço para criar um processador separado para cada Yahoo, o Google serviços?
Solução
Eu decidi usar a opção de múltiplas PacketListeners. A única PacketListener estaria fazendo muito trabalho, com todas as if-else-declarações.