2011-01-10 5 views
1

다음과 같이하고 싶습니다. 정적 인 섹션에서로드 타임에 Properties XML 파일을 읽는 클래스가 있습니다. 일부 파일은 등록 정보 파일을 공유하기 때문에 동일한 파일을 반복적으로로드하게하는 것은 어리석은 일입니다.정적 프로젝트 전체 환경 설정 시스템을 구현하는 방법은 무엇입니까?

속성 파일의 이미로드 된 인스턴스를 요청하는 클래스에 반환하는 싱글 톤 클래스를 만들고 싶습니다. 지금까지는 그렇게 단순합니다.

그러나로드 할 필요가있는 파일이 여러 개 있기 때문에 파일을 읽는 작업을 처리 할 정적 기본 클래스를 작성한 다음 각 하위 클래스에 대한 세부 사항을 Object-Orient로 가져 오는 것이 자연스러운 생각입니다. 그것들은 단지 위치 가져 오기 클래스 메소드를 구현한다.

그리고, 나는 같은 것은 정적 상속이 없다는 것을 배웠습니다 ...

가 어떻게 정적 상속에 의존하지 않고이를 구현 할 수 있습니까?

+0

여기에 상속이 필요합니까? 필요한 것은 매개 변수로로드 할 파일과 함께 속성을로드하는 클래스 인 것 같습니다. – nos

+0

것은 다른 설정 파일이 다른 기능을 제어한다는 것이고, 모든 설정을 하나의 파일로 정리하고 싶지는 않습니다. 이 방법으로 각 패키지 또는 클래스 집합은 하나의 설정 클래스에 의해 관리 될 수 있으며 다른 설정 클래스를 구현하기 위해 수행해야하는 유일한 작업은 구체적인 위치를 지정하여 하위 클래스를 만드는 것입니다. – Alex

답변

1

어떻게 파일을 지정하는 를로드 할 (간단한 방법 이름을 용서하시기 바랍니다)? 그 중 하나가 아닌 여러 개의 파일을 지정할 수 있습니까?

또한 싱글 톤 패턴을 사용하여 다시 생각해 보겠습니다. 의존성 삽입을 사용하여 Preferences 인터페이스를 필요한 모든 클래스에 삽입 할 수 있습니다. 예를 들어, Spring이 ApplicationContext를 통해 MessageSource 인터페이스를 제공하는 방법을 생각해 보자.

0

하나의 옵션은 확장 클래스가 위치 가져 오기 클래스 메소드를 지정하도록 구현해야하는 추상 메소드로 추상 기본 클래스를 구현하는 것입니다.

예 :

public abstract class BaseReader { 
    public List<Property or whatever> readFile() { 
    // common reading logic here 
    } 

    public abstract String getXmlFileLocation(); // subclasses implement this 

} 
관련 문제