3

私はサービスについて少し混乱しています。休止状態の統合にサービスを使用する必要があるのはなぜですか? 私はDAOインターフェースを直接使用できると思います。たとえば、このチュートリアルhttp://www.onlinetechvision.com/?p=566で、彼が IUserDAO の代わりに IUserService を使用した理由。IUserService は本当に必要ですか?

4

2 に答える 2

6

サービスはいくつかの点で優れています。

  • トランザクション内で DAO 操作を調整するため、アクションのロジックで複数の SQL 呼び出しが必要な場合は、それらをまとめてコミットまたはロールバックできます。

  • プレゼンテーションに依存しないビジネス ロジックを配置する場所を提供します。controllers とは対照的に、 services に何が入るかについて話している関連する回答があります

  • アプリケーションがサポートする低レベルのユース ケース アクションを明確に公開します。つまり、サービスのメソッドを見ることで、ユーザーがアプリケーションで実行できることを知ることができます。

サービスが過剰だと感じた場合 (たとえば、ビジネス ロジックがなく、トランザクションで複数のデータ アクセス操作を組み合わせる必要のない CRUD アプリケーションを構築している場合)、それらを使用する必要はありません。DAO にトランザクションの注釈を付けることができます。

(私はJSFに精通していないことに注意してください(質問にリンクされているチュートリアルで使用されています)、この質問にJSF固有の角度がある場合、私はそれに対処できません。)

CRUD アプリケーションを構築している場合は、Grails などを調べてください。DAO のコーディングを回避できるデータ アクセス メソッドを含む、すぐに使用できるすべてのアプリケーション構成を提供します。また、サービスなしで開始し、必要に応じてサービスを追加することもできます。

于 2013-04-19T14:02:02.803 に答える
1

実際の実装ではなく、インターフェイスを注入します (Spring は正しいものを注入します)。したがって、後で必要に応じて、必要に応じて実装を変更できます。これは簡単な説明ですが、すぐにもっと複雑な説明が続くと思います。

于 2013-04-19T14:02:56.350 に答える