모든 패킷에 대한 하나의 리스너 대 특정 유형을 처리 할 별도의 리스너

StackOverflow https://stackoverflow.com/questions/736802

  •  09-09-2019
  •  | 
  •  

문제

Smack의 XMPPConnection은 Jabber 서버에서 XMPP 응답을 수신하는 이벤트 중심 방식을 구현합니다. 방법 AddPacketListener (org.jivesoftware.smack.packetlistener, org.jivesoftware.smack.filter.packetfilter)를 사용하면 자신의 사용자 정의 리스너를 지정할 수 있습니다. 하나의 PacketListener가 모든 유형의 들어오는 메시지를 처리하는 코드를 유지하고 있습니다. 디자인을 개선하기 위해 ( 단일 책임 원칙), 나는 특정 유형의 패킷을 처리하는 별도의 리스너를 만들 계획입니다. 이것이 좋은 생각입니까? 또 다른 문제는 메시지 패킷은 많은 IM 시스템 (예 : Yahoo, Google 등)에서 나올 수 있습니다 ...? 각 Yahoo, Google 서비스에 대해 별도의 프로세서를 작성합니까?

도움이 되었습니까?

해결책

여러 PacketListeners 옵션을 사용하기로 결정했습니다. 단일 PacketListener는 모든 if else-statements와 함께 너무 많은 작업을 수행 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top