2011-02-04 6 views
1

私はxmlデータを持っています。このデータから、私はオブジェクトを作成する必要があります。今までは、XMLデータの解析とオブジェクト状態の管理に1つのクラスを使用しました。クラスの結束度が非常に低いことがわかります。だから私は別のクラスに構文解析責任を与えたい。私は簡単な考えとして、Factory Patternを使用してxmlの解析とオブジェクトの作成を行うことができます(私のオブジェクトに共通の基底クラスがあります)。しかし、どのように私は作成されたオブジェクトを消費者クラスに戻すべきですか?コンテナクラスのオブジェクトインスタンス(リスト、マップなど)? 1つ1つ(ノードが解析されたとき)?xmlパーサのデザインアドバイス

私はさまざまなアドバイスを受けています。

+1

あなたはどの言語/プラットフォームを使用していますか? – Oded

+0

C++とQtフレームワーク – onurozcelik

答えて

2

このようなことをするライブラリを確認したい場合があります。例えば、単純な: http://simple.sourceforge.net やJAXB: http://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding

+0

私はそのような種類のライブラリを使う必要はありません。私はすでにこの仕事のためのクラスを持っています。 2番目の答えで私のコメントをチェックしてください。 – onurozcelik

+0

@onurozcelik:申し訳ありませんが、私はまだあなたの質問をキャッチしていなかったと思います。あなたは(xmlファイルからシリアル化されていない)オブジェクトをコンシューマクラスに戻す方法を尋ねています。あなたの全体的なアプローチはどうですか? 「誰もがその設定を引き出すことができるシングルトンとしての大きな設定ファイルのようなものですか?それとも、シリアル化が常に起こっているのですか?シリアル化されていないデータをバッファリングしますか?それはオプションですか?クラスはタグをポーリングしますか? – yankee

2

あなたの言語/プラットフォーム用の既存のパーサがあるように持っています。私のアドバイスは、あなたが本当にこのようなものを再発明する必要があるかどうかを自問することです。

+0

あなたは私が間違っていると思う。私の貧しい人々の説明には申し訳ありません。私はDOMParserまたはSAXParserクラスを書くつもりはありません。 xml形式の従業員データがあり、このデータからEmployeeオブジェクトを作成する必要があるとします。私はxmlの読書と従業員オブジェクトの作成責任を1つのクラスに伝えたくありません。クラスをどのように設計すればいいですか?私の質問はまさにこれです。 – onurozcelik

+0

@onurozcelik - 私はSeanの答えがこの点に直接的に対応していると信じています。彼は、オブジェクトからXMLへの変換を処理するために、C++でJAXB(Java)に相当するものが必要であることを示唆しています。 –

+0

これはあなたの質問に答えることはできませんが、それは絶対に関連しており、知っておいていいです:http://stackoverflow.com/questions/87621/how-do-i-map-xml-to-c-sharp-objects – r3st0r3