2012-02-22 1 views
1

私は何年も書いたC++アプリケーションを持っています。たくさんのクラスがあります。アプリケーションアーキテクチャを設定する

パラメータ値を変更するたびに、コード内で手動で更新して再コンパイルする必要があります。それはユーザの増加する要求として便利ではない。クラスの値をアプリケーション側で設定したいと考えています。おそらく、フォームをXMLで読むのが一番ですか?ユーザーごとにXML設定を行い、アプリケーションと一緒に送信することができます。それは良いアプローチですか?

すべてのクラス(クラスclassA)に対して、次のクラスを作成する必要があります:ConfigClassA次に、classAはConfigClassAの設定を使用しますか?現在の実装では多くの変更を加える必要はありません。

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

XMLでは、私たちは部分クラスAを取得することができますし、クラスAは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

実際には、設定ファイルを持つことはかなり一般的です。それらが格納されている形式は重要ではありません。それらは通常、プログラムの始めにメソッドが要求するたびに照会されないで一度だけロードされます。

また、これらのファイルを編集するためのツール([環境設定]パネルなど)も用意する必要があります。

関連する問題