これはJava固有の質問ではなく設計上の質問ですが、私はJava用に設計しています。StAX解析のクラスを設計する
カスタムXMLレスポンスを処理するためのXMLプル解析クラスをいくつか作成していますが、設計時には何か良いものがあるかどうかは考えられません。たぶん誰かがそれのためのデザインパターンを持っているかもしれません。
だから、ここに私のXMLは次のように見えるかもしれものです:だからRequestId
(種類のキー)に応じて、Body
要素が異なる
<ResponseRoot>
<Header>
<RequestId />
<OtherHeaderMetaData />
</Header>
<Body>
...
<!-- Lots of other elements and nested elements -->
...
</Body>
</ResponseRoot>
。これがプル構文解析であることを考えると、大きなswitch文とif-else-ifブロックがたくさんあるでしょう。
多くの静的メソッドを持つ1つのクラスがXMLストリーム全体を処理する方が効率的でしょうか、より良い設計で各クラスの責任を負うようにしますか?RequestId
? 私はBody
をヒットしたときに、適切なサブパーサーを取得するためにファクトリを使用します。その工場では、Class
インスタンスのマッピングを使用して、リフレクションを使用して適切なパーサーをインスタンス化することもできます(すべてのパーサーが常に必要なわけではないため)。それとも...、私はあまりにも深く考えています、
いや...使用反射が方法代わりに適切な静的解析をつかむために、私は本当にわずか1ユースクラスであるパーサーをインスタンス化する必要はありませんこれは個人的なプロジェクトなので、StAXパーサーの解析クラスをどのように設計するのかが不思議です。