オブジェクト指向の方法でメッセージキュー処理を記述する方法

StackOverflow https://stackoverflow.com/questions/346105

  •  19-08-2019
  •  | 
  •  

質問

メッセージキューからメッセージを取得し、データベース内のテーブルを更新するコードを記述する必要がある場合、適切なooの方法でテーブルをどのように構築しますか。どのように構成しますか?メッセージはXMLデータで、テーブルの行ごとに1つのノードです。テーブル内の行は、更新、削除、または挿入できます。

役に立ちましたか?

解決

通常、メッセージキューのオブジェクト指向実装では、個々のタイプのメッセージを表すクラスを自分で作成します。取得する予定の異なるメッセージタイプが相互に派生している限り、これによりメッセージのクラス階層が提供されます。

設定ベースの永続化フレームワークを使用すると、これらのクラスのプレゼンスを直接設定できます。

次に、メッセージキューをリッスンし、メッセージを永続化する1つ以上のクラスがあります。おそらく1つだけです。それより精巧である必要はありません。

他のヒント

良い回答を得るのに十分な情報を提供したとは思わない。メッセージはどのように見えますか?それらは内容/タイプが異なりますか、それともすべて<!> quot; messages <!> quot;ですか?それらは互いに相互作用しますか、またはこれは単なるデータ形式変換ですか?オブジェクト指向開発の鍵の1つは、<!> quot;名詞を見つける-n-動詞<!> quot;ゲーム(あなたが説明したのと同じくらい)はめったに最良のソリューションにつながりません。確かに最悪ではありませんが、データの集約と一連の手続きコードが必要になります。

手続きコードは悪くありませんが。なぜオブジェクト指向である必要があるのですか?問題自体にポリモーフィズムとデータの非表示が必要ですか?モデル化しようとしている複雑な動作はありますか?問題が単純な場合、OO以外のソリューションを使用することに恥はありません。

メッセージングを行うとき、またはあらゆる種類のミドルウェアを扱うときにオブジェクト指向コードを構築する最良の方法は、ミドルウェアAPIをコードから隠し、ビジネスロジックを処理することです。

e.g。これらの例を参照してください

次に、データ転送オブジェクトの外観を定義する必要があります。ワイヤ上の物事をXML / JSONなどでエンコードする方法。

このアプローチの素晴らしい点は、コードが完全にミドルウェアに依存しないことです。メッセージキューを交換して、データベースまたはJavaSpaceまたはインメモリSEDAまたはファイルまたはその他の通信プロトコルまたはミドルウェアAPI

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top