質問

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

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

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

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

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

役に立ちましたか?

解決

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

あなたがしていることの最大の利点は、多くの人がしがちなコントローラー内のすべてのビジネスとDBロジックを乱雑にしないことです。本当にMVCをフォローしたい場合は、常にコントローラーをできるだけ軽量にする必要があります。

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