2012-05-06 4 views
0

나는 자바 두 프로젝트가있다. 하나의 서버 프로젝트와 하나의 클라이언트 프로젝트. 둘 사이의 네트워크 코드에서 요청을 보냅니다. 코드에서 여러 유형의 요청에 대해 0, 1, 2를 입력하지 않으므로 대신 상수를 사용합니다. 내 문제는 두 프로젝트에서 상수를 선언하고 싶지 않지만 한 프로젝트에서 상수가 동일하기 때문에 한 곳에서 선언하는 것입니다. 누구든지이 좋은 해결책을 알고 있습니까?프로젝트 간 상수 공유

편집 : 클라이언트 프로젝트는 안드로이드 응용 프로그램이며 서버는 클라이언트의 요청을 처리해야하는 서블릿입니다.

답변

6

인터페이스가있는 라이브러리 프로젝트를 만듭니다. 이 인터페이스는 상수를 선언합니다. 두 프로젝트에서이 라이브러리를 공유하십시오. 일부 종속성 관리를 사용하는 경우 매우 간단합니다.

편집 :

http://en.wikipedia.org/wiki/Constant_interface에 설명 된대로 최종 클래스를 사용하여 더 나은입니다! 그러나 핵심은 라이브러리 프로젝트를 사용하고 두 프로젝트의 공통 부분을 별도의 병에 공유하는 것입니다.

+0

이 작업을 수행하는 것은 바람직하지 않습니다. _Constant Interface Antipattern, Effective Java, Item 17_ – Kai

+0

... 또는 [이 질문] (http://stackoverflow.com/questions/2659593/what-is-the-use- of-interface-constant) – Kai

+0

@ user714965 ** 해당 인터페이스를 구현하는 것만이 나쁜 습관입니다. 그러나 최종적으로 비 계발 할 수없는 수업을 작성하는 것은 나쁜 일을하는 것이 불가능 해 지므로 여전히 좋습니다. –

0

아키텍처에 대해서는 잘 모르겠지만 클라이언트가 서버에 전화를 걸면 여기에 이미 의존성이 있습니다.

따라서 클라이언트 프로젝트에 종속성으로 서버 프로젝트를 추가해야합니다. 그런 다음 상수가 포함 된 서버 프로젝트에서 클래스 (또는 경우에 따라 열거 형)를 정의 할 수 있습니다. 서버가 이러한 메소드를 제공 할 때 이것이 속하는 곳입니다.