2013-01-25 4 views
0

Android 애플리케이션 용 UDP 메시징 시스템을 만들고 있습니다. 그 때문에 스레드를 보내고받으며 파싱하는 별도의 클래스를 만들었습니다. 클래스를 인스턴스화해야합니다 - 즉. 단 하나의 UDP 서버!Java의 클래스 사이에서 말하기?

이제 Android에서는 디자인에 기본적으로 다른 클래스 인 여러 가지 활동이 있습니다. 다른 클래스의 UDP 통신 iterface를 사용하고 싶습니다. 그러나 현재 UDP CI는 주 클래스에서 한 번 인스턴스화됩니다. 따라서 나는 다른 클래스의 객체에 액세스 할 수 없습니다. 또한, CI 구문 분석 모듈은 메시지에 따라 전체 앱의 설정/UI/...를 변경해야합니다.

따라서 :

  1. 내가 전혀 내가 1 개체 이상 필요하지 않은 경우 인스턴스를해야합니까?
  2. 클래스의 모든 것을 정적으로 유지하는 것이 좋은 선택입니까?
  3. 어느 시점에서 나는 반대 방향 (obj-> main)으로 얘기해야 할 것입니다. 콜백을 사용하거나 메인에서 CI로 필요한 리소스를 전달하고 CI에서 관련 리소스를 사용해야합니까?

나는이 문제를 충분히 명확하게 설명하기를 희망한다. 궁금한 점이 있으면 저에게 질문하십시오.

답변

2

응용 프로그램 컨텍스트 (싱글 톤)에 저장하십시오. 또는 Service에서 연결하고 원하는 경우 각 Activity가 데이터를 검색하도록하십시오.

0

다른 클래스에는 인스턴스가 필요합니다. 공식적으로 말해서 UDP Cl에 의존하고 있습니다. 이 문제를 해결하기 위해 다음과 같은 두 가지 옵션이 있습니다.

  • 종속성 주입 프레임 워크를 사용하십시오. UDP Cl에 대한 singleton을 만들고 UDP (CL)이 UDBCl.getInstance()처럼 뭔가를 할 수 필요한 모든 클래스는 제가 개인적으로 방법 1 선호 UDP Cl

의 인스턴스를 얻을 - guice는 다른 클래스에 자동으로

  • 오래된 학교 방법을 같은 의존성을 주입하는 그것은 단위 테스트에 우호적이기 때문입니다. 방법 2로 더 빨리 문제를 해결할 수 있습니다.

  • +0

    종속 프레임 워크 인젝티브 프레임 워크는 어떤 것이 좋을까요? 어떻게 작동합니까? 짧은 예를 들면? – SharkyLV

    +0

    http://code.google.com/p/google-guice/wiki/Motivation (종속성 삽입이 어떻게 도움이되는지 및 사용 방법에 대한 좋은 배경 지식) – ManojGumber

    0

    두 번째 클래스에서 첫 번째 클래스의 인스턴스를 만듭니다. 또한 번들을 사용하여 클래스간에 데이터를 전송할 수 있습니다.

    +0

    데이터는 번들에 대해 직렬화 가능해야합니다. 그리고 메모리 사용을 최소화하기 위해 객체 인스턴스화를 최소화해야합니다. – SharkyLV