9

オブジェクトを永続ストアに保存するときのサービス層とリポジトリ層の責任について頭を悩ませようとしています。

私の現在の理解はこれです:

私のコントローラーでは、ユーザーが(フォームから)送信したデータから「メモ」オブジェクトを作成しました。次に、ユーザーは「NoteService」で「保存」を呼び出します(依存性注入によってそこにあります)。

「NoteService」の「Save」メソッド内でビジネス ロジックの検証を実行し、「Note」オブジェクトを「NoteRepository」の「Save」メソッドに渡します。

次に、「NoteRepository」の「Save」メソッドは、このオブジェクトに既存の主キーがあるかどうかを確認し、存在する場合はデータベースからそのオブジェクトを取得し、渡された「Note」オブジェクトを使用してそのプロパティを更新し、保存しますデシベルに戻ります。主キーがない場合、オブジェクトは単純にデータベースに保存され、新しく作成された主キーとともにサービスに返されます。

4

1 に答える 1

4

あなたの懸念の分離は、私にはかなり良いように思えます。私たちも同じパターンに従いますが、リポジトリ レイヤーのすぐ近くにもう 1 つのレイヤーを追加する傾向があります。これをドメイン層と呼び、そこですべてのビジネス ロジックを実行します。サービス層は、将来サービスを ESB に公開する必要がある場合に備えて、ドメインへの単なるパススルーです。

あなたがやっていることの最大の利点は、多くの人がやりがちなコントローラーのすべてのビジネスと DB ロジックを混乱させないことです。本当に MVC に準拠したい場合は、常にコントローラーをできるだけ軽くしたいと考えています。

于 2010-06-14T17:14:05.590 に答える