2012-02-22 6 views
1

난 수년 동안 작성한 C++ 응용 프로그램이 있습니다. 많은 수업이 있습니다.응용 프로그램 아키텍처 구성

매개 변수 값을 변경하려면 코드에서 수동으로 업데이트하고 다시 컴파일해야합니다. 사용자의 요구가 증가함에 따라 편리하지 않습니다. 우리는 클래스의 값을 응용 프로그램 외부에서 구성하려고합니다. 아마도 xml을 읽는 것이 가장 좋습니다. 각 사용자마다 xml 구성 설정을 만들어 응용 프로그램과 함께 보낼 수 있습니다. 좋은 접근인가?

모든 클래스 (예 : 클래스 classA)에 대해 다음과 같은 다른 클래스를 만들어야합니까 : ConfigClassA 그러면 classA는 ConfigClassA의 구성 설정을 사용합니까? 우리는 현재 구현에서 많은 변경을하고 싶지 않습니다.

<classes> 
    <class name="ClassA"> 
     <variable id="isUp" value="true" /> 
    </class> 
</classes> 

XML로, 우리는 일부를 ClassA 얻을 수를 ClassA가 ConfigClass의 인스턴스가 다음 ConfigClassA로 분석 :

XML 파일의 구조가 가정하자.

아니면 누구나 더 나은 방법이 있습니까?

미리 감사드립니다.

+0

대상 플랫폼을 알지 못하고이 "클래스"가 나타내는 것을 모르는 경우 정확한 조언을 제공하는 것이 매우 어렵습니다. – ereOn

+0

그것은 Windows 플랫폼이며 응용 프로그램은 Visual Studio 2010에서 C++로 작성되었습니다. 객체 지향 스타일이므로 참조하십시오 : 클래스 – olidev

답변

1

일반적으로 응용 프로그램이 시작될 때 전체 구성이로드되어야한다고 생각하므로 잘못된 구성이있는 경우 즉시 사용자에게 알릴 수 있습니다. XML 파일의 유효성을 검사하려면 XML Schema을 사용할 수 있습니다.

그러나 현재 구현에서 많은 변경을 원하지 않는다면 아이디어가 유효한 해결책이 될 수 있습니다.

1

JSON 또는 YAML을 사용하면 구성 파일의 구문 분석기가 더 간단 해 지므로 XML보다 가볍습니다. 어쨌든, XML도 가능합니다.

+2

대답은 잘못되었지만 OP가 글로벌 코드 디자인에 더 관심이 있다고 생각합니다. 구성 값을 저장/읽는 데 사용되는 효과적인 기술에 관한 것입니다. – ereOn

1

사실 구성 파일을 가지고있는 것이 일반적입니다. 저장 형식은 중요하지 않습니다. 그들은 일반적으로 프로그램 시작시 한 번만로드되며 메소드가 무언가를 요청할 때마다 쿼리되지 않습니다.

또한 이러한 파일을 편집하는 데 사용할 수있는 도구 (예 : "환경 설정 ..."패널)를 만들어야합니다.