1

最近、Spring3.1を使用してイベント駆動型アーキテクチャでアプリケーション作業をアップグレードしました

私はあなたがどう思いますか?

  1. 各クラスにDAOインスタンスがあり、DBにレコードを挿入/更新などする必要があります。(通常の方法)

  2. メッセージをDAOに(jms / channels / whatever経由で)送信しますか?メッセージの内容は、私が行うべきことの指示になります(DBへのレコードの挿入/更新など)

緩い結合の方法で2番目の方法はどのように優れていますか?

多分それはやり過ぎですか?

これまたは他の提案やアドバイスは大歓迎です。

ありがとう。レイ。

4

1 に答える 1

3

緩い結合は、アプリケーション(メッセージキューなど)に具体的なレイヤーを「追加」することを意味するものではありません。「サービス」実装クラスがインターフェースを介してDAOレイヤーと対話する場合(春のDAO Beanインジェクションは、頭に浮かぶ完璧なユースケースです)、ほとんど抽象レベルで操作しています。

次に、具体的なDAOクラスインジェクションを別のサービスにメッセージを投稿するメッセージングクライアントと交換すると、コードは以前と同じように機能し続け、大きな変更はありません。もちろん、ブロッキング/非ブロッキングのアプローチの間には常に断絶がありますが、優れた抽象化で解決できないものはありません。私の提案は、新しいレイヤーを追加するのではなく、アプリケーションの初期ドラフト/リファクタリングを作成するためのGuiceのようなフレームワーク/ライブラリを調べることです。その後、ある時点で非ブロッキングDB呼び出しが進むべき道であると感じた場合は、それらを簡単に実装できます。その論理を前もって置くことは、技術的負債を増やすだけです。

于 2012-10-24T14:37:20.287 に答える