2009-04-17 2 views
1

메아리 XMPPConnection을 생성하는 팩토리를 만들고 싶습니다. 연결을 만들 수없는 경우 공장에서 실제 XMPPConnection 또는 NullObject를 반환해야합니다.실제 객체와 NullObject를 모두 지원할 수있는 팩토리 만들기

그러나 smack의 XMPPConnection은 구체적인 클래스입니다.

인터페이스를 구현하지 않으므로 Java 동적 프록시 API를 사용하여 프록시를 사용할 수 없습니다. XMPPConnection을 확장 할 수는 있지만 매우 우아하지는 않습니다.

다른 옵션이 있습니까? 팩토리는 절대로 null을 리턴해서는 안된다.

답변

3

기본적으로 XMPPConnection을 복제하고 해당 인터페이스를 구현하고 실제 XMPPConnection 클래스를 래핑하는 어댑터를 만드는 자체 인터페이스를 만들어야합니다. 그렇게하면 NullXMPPConnection을 사용할 수도 있습니다.

+0

깔끔한 아이디어입니다. 그만한 가치가 있니? 나는 단지 공장을 포기하고 매번 새로운 XMPPConnection을 할 수있다. –

+0

이 연결을 한 곳에서 만 만들면 그만한 가치는 없지만 모든 곳에서 사용하면 예라고 말합니다. CV에 많은 디자인 패턴을 추가 할 수도 있습니다 :) – willcodejavaforfood

+0

XMPPConnection이 필요한 곳은 세 곳입니다. 저는 GUICE 환경에서 일하고 있습니다. 그래서 공장에서 다른 클래스에 연결을 삽입하도록 도와줍니다. –

관련 문제