まずで書かれた既存のアプリケーションを構成し、これは設計上の問題ではなく、問題です:は、すべての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();
}
。私は、構成設定を保持する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 { 公共: XMLPARSERを(); int parse(文字列xmlファイル、文字列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ファイルを解析し、その値をステップの設定メソッドに渡すことをお勧めします。それとももっと良い方法がありますか?
私はあなたの意見を知りたいと思います。
ありがとうございます。
XMLは、データが別に存在するという意味で、コードが複数の構成になりしかし、それはxmlを解析する少しオーバーヘッドを追加します。それはあなたの主な目的はデザインの変更に依存します。 –
私の目的は、外部からアプリケーションを構成可能にすることです。したがって、xmlを導入して構成設定を保持し、xmlParserクラスを追加しました。はい、私はxmlParserのparse()メソッドが非常に複雑で読みにくいことにあなたに同意します。何をお勧めしますか?前もって感謝します。 – olidev
あなたのアプリケーションを外部から設定できるようにする場合は、xmlを使用することをお勧めします。xml解析を別のクラスにカプセル化することも良いアイデアです。また、いくつかのオープンソースのxml解析ライブラリを使用して、あなたは正しいアプローチをしています。すべて最高です。 –