所有数据包的一个侦听器与处理特定类型的单独侦听器
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我决定使用多个 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.