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

发布于 2024-07-17 01:20:52 字数 645 浏览 3 评论 0原文

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

Smack's XMPPConnection implements an event-driven manner of receiving XMPP responses from a jabber server. The method addPacketListener (org.jivesoftware.smack.PacketListener, org.jivesoftware.smack.filter.PacketFilter) allows you specify your own custom listener. I'm maintaining code in which one PacketListener handles all types of incoming messages. In the interest of improving the design, (with a nod to the Single Responsibility Principle), I plan to create separate listeners that handle specific types of packets. Is this a good idea ? Another issue is that the messages packet can come from many IM systems e.g. yahoo, google etc... ? Do I create a separate processors for each Yahoo, google services?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初心 2024-07-24 01:20:52

我决定使用多个 PacketListeners 选项。
对于所有的 if-else 语句,单个 PacketListener 会做太多的工作。

I've decided to use the multiple PacketListeners option.
A single PacketListener would be doing too much work, with all the if-else-statements.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文