所有数据包的一个侦听器与处理特定类型的单独侦听器

Posted

技术标签:

【中文标题】所有数据包的一个侦听器与处理特定类型的单独侦听器【英文标题】:One listener for all packets vs separate listeners to handle specific types 【发布时间】:2009-04-10 05:38:38 【问题描述】:

Smack 的 XMPPConnection 实现了一种从 jabber 服务器接收 XMPP 响应的事件驱动方式。 addPacketListener (org.jivesoftware.smack.PacketListener, org.jivesoftware.smack.filter.PacketFilter) 方法允许您指定自己的自定义侦听器。我正在维护一个 PacketListener 处理所有类型的传入消息的代码。为了改进设计(向Single Responsibility Principle 致敬),我计划创建单独的侦听器来处理特定类型的数据包。这是一个好主意吗 ?另一个问题是 messages 数据包可能来自许多 IM 系统,例如雅虎、谷歌等...?我是否为每个雅虎、谷歌服务创建单独的处理器?

【问题讨论】:

【参考方案1】:

我决定使用多个 PacketListeners 选项。 使用所有 if-else-statements 单个 PacketListener 会做太多工作。

【讨论】:

以上是关于所有数据包的一个侦听器与处理特定类型的单独侦听器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 javascript 中为所有事件添加事件侦听器而不单独列出它们?

在事件侦听器中创建数据库触发器

Oracle Listener

JavaScript事件委托

多线程批处理队列

js-事件