우선 문제는 아닌 디자인 문제입니다.C++로 작성된 기존 응용 프로그램 구성
C++로 작성된 기존 응용 프로그램이 있습니다.
구조는 다음과 같습니다 : 지금 현재의 구조를 변경할 수 있어요하지만 외부로부터의 모든 단계를 구성하는 데 필요
class Step1
{
public:
Step1();
void process();
void setValue(int v); // is to change the value
private:
int value;
}
class Step2
{
public:
Step2();
void process();
void setValue(int v); // is to change the value
private:
int value;
}
void main()
{
Step1 step1();
Step2 step2();
step1.setValue(1);
step2.setValue(2);
step1.process();
step2.process();
}
.) ( XmlParser가; 나는 구성 설정 잡고 xml 파일을 만들 것을 제안하고있다 :
<?xml version="1.0"?>
<Steps>
<Step id="step1">
<param method="setValue" variable="v" value="1" />
</Step>
<Step id="step2">
<param method="setValue" variable="v" value="2" />
</Step>
</Steps>
을 그리고 나는 XML 파일을 구문 분석 클래스를 추가합니다 :
클래스 XmlParser가 { 공개 int parse (string xmlFile, string paramValue); }
는 내가 단지 메인 클래스를 변경 것이라고 생각 :
void main()
{
Step1 step1();
Step2 step2();
XmlParser xmlParser();
step1.setValue(xmlParser.parse(,));
step2.setValue(xmlParser.parse(,));
step1.process();
step2.process();
}
나는 20 개 이상의 단계를 가지고 모든 단계에서 구성 할 수있는 10 가지 방법이 있습니다. XmlParser 클래스가 xml 파일을 구문 분석하고 값을 단계의 set 메서드에 전달하는 방식으로 아키텍처를 변경하는 것이 좋습니다. 아니면 이것을 할 수있는 더 좋은 방법이 있습니까?
귀하의 의견을 알려주십시오.
미리 감사드립니다.
에서 XML는 의미에서 더 구성 코드를 만든다 코드, 그러나 그것을 xml.So 구문 분석 약간의 오버 헤드를 추가하는 디자인의 수정을위한 기본 목표는 무엇입니까 의존합니다. –
내 목표는 외부에서 응용 프로그램을 구성 가능하게 만드는 것입니다. 따라서 xml을 도입하여 구성 설정을 유지하고 xmlParser 클래스를 추가했습니다.예, 저는 xmlParser의 parse() 메서드가 매우 복잡하고 읽기가 쉽지 않을 것이라고 동의합니다. 너는 무엇을 제안 하겠는가? 미리 감사드립니다. – olidev
응용 프로그램을 외부에서 구성 가능하게 만드는 것이 목적이라면 xml을 사용하는 것이 좋습니다. 별도의 클래스에서 xml 파싱을 캡슐화하는 것도 좋은 생각입니다. 또한 편리한 오픈 소스 XML 파싱 라이브러리를 사용하여 사용법 및 코딩. 당신은 올바른 접근 방식을 가지고 있습니다. –