나는 초보자 질문이 있습니다. 두 클래스 이상에서 공유하는 전역 변수가있는 경우 클래스를 읽고 업데이트 할 수 있도록 별도의 파일에 어떻게 둘 수 있습니까? 인터페이스를 사용하지 않고 이것이 가능합니까?전역 변수에 대한 자바 별도 파일
답변
예, interface
변수는 모두 내재적으로 static
이므로 이러한 변수 각각은 jvm에 인스턴스가 하나만 있습니다.
그러나 내 생각에 더 나은 방법은 아마 singleton 클래스에서 선언하고 사용하는 것입니다.
이 작업을 수행하는 가장 좋은 방법은 인터페이스 메소드를 통해 공유 응용 프로그램 상태에 액세스 할 수있게 한 다음 변수를 보유하고있는 구현 클래스를 만들고이 클래스 인스턴스를 다른 클래스에 전달하는 것입니다. 인터페이스의 인스턴스).
테스트를 위해 공유 상태 기능을 조롱하고 일반 코드 재사용 가능성을 향상 시키며 영향을주지 않고 공유 상태의 구현 및 구성을 변경할 수 있으므로 정적 클래스 또는 싱글 톤을 사용하는 것보다 낫습니다. 그것을 사용하는 코드.
예. [자바 글로벌 변수]의
// Session interface for all application shared state.
public interface ApplicationSession
{
public int getMaxUserLimit();
}
// A backing for the interface (simple in memory version, maybe future versions use a database, who knows).
public class SomeApplicationSession implements ApplicationSession
{
private volatile int maxUserLimit = 0;
public void setMaxUserLimit(int limit) { this.maxUserLimit = limit; }
public int getMaxUserLimit() { return maxUserLimit; }
}
// ClassA uses the supplied session.
public class MyClassA
{
private ApplicationSession session;
public myClassA(ApplicationSession session)
{
this.session = session;
}
}
// usage...
public class MyMain
{
public static void main(String[] args)
{
// Create/get session (ultimately possibly from a factory).
ApplicationSession session = new SomeApplicationSession();
ClassA myClassA = new ClassA(session);
// do stuff..
}
}
당신은 나에게이 부분을 설명해주십시오 수 있습니다 ApplicationSession 세션 = 새로운 SomeApplicationSession(); – user1064089
@ user1064089 이것은 응용 프로그램 세션의 인스턴스를 인스턴스화하는 예제 일뿐입니다 (그리고이 인스턴스는 생성시 다른 클래스간에 공유됩니다). 이것을 쓸 때 유용하게 사용하려면 인터페이스에서 설정 메소드를 선언하거나 세션의 변수를 변경할 방법이 없습니다. –
- 1. 전역 변수에 대한 응용 프로그램 확장
- 2. javascript : 전역 변수에 대한 텍스트 메시지?
- 3. 자바 스크립트의 모든 창 [전역] 변수에 대한 루핑. IE 호환?
- 4. 전역 변수에
- 5. 자바 스크립트에서 전역 함수 변수에 액세스하기
- 6. 자바 스크립트에서 전역 변수에 값을 할당하십시오.
- 7. 정적 전역 변수에 대한 액세스 위반 작성?
- 8. Java에서 시뮬레이션하는 전역 변수에 대한 쿼리
- 9. 전역 변수에 대한 "정적"키워드 - 범위는 무엇입니까?
- 10. BackgroundWorker 및 전역 변수에 대한 액세스
- 11. 환경 의존 전역 변수에 대한 대체
- 12. JavaScript의 "전역"변수에 대한 모범 사례?
- 13. Python에서 전역 변수에 액세스하기
- 14. dll에서 전역 변수에 액세스
- 15. 프로그램에서 전역 변수에 액세스해야합니다.
- 16. 크롬으로 전역 변수에 액세스
- 17. 파이썬 모듈에서 전역 변수에 액세스
- 18. 자바 스크립트에서 전역 변수에 액세스 할 때 문제가 발생했습니다.
- 19. 자바 별도 MouseListener 및 성능
- 20. 리소스 파일의 전역 변수에 액세스
- 21. 전역 매개 변수에 대한 파이썬 모듈 -이 좋은 연습입니까?
- 22. PHP 전역 변수에 액세스하기위한 메소드
- 23. 헤더 파일을 전역 변수에 포함하기
- 24. 전역 범위의 개인 변수에 액세스
- 25. 전역 변수에 값이 할당되지 않습니다.
- 26. 클래스 외부의 전역 변수에 액세스
- 27. XSLT : 전역 변수에 값 할당
- 28. 행의 값을 전역 변수에 할당
- 29. 클로저에서 전역 변수에 액세스하는 방법은 무엇입니까? (자바 스크립트)
- 30. 은 자바 스크립트 전역 변수에 액세스 할 수 없습니다.
가능한 중복 (http://stackoverflow.com/questions/4646577/global-variables-in-java) –