はじめに
こんにちは!DDDの旅を一緒に楽しんでいますね🎈
今日は次のステップとして、ドメイン駆動設計の大切な仲間「リポジトリ」について楽しく学びましょう!
📦 リポジトリってなに?
ドメイン(モデル)ではビジネスのルールや振る舞いを表現し、データの保存・取得といった処理は行わない所ですが、データの保存・取得といった処理を実際に扱うのがリポジトリの役割です。
リポジトリとは、エンティティや集約(関連する複数のドメインオブジェクトをひとまとめにした単位)を保管したり取り出したりする場所のこと。まるで図書館や倉庫のような役割です!
簡単に言うと、「必要なものを安全にしまっておいて、使いたいときにサッと取り出せる仕組み」なんです✨
🎯 リポジトリの役割
リポジトリには主に2つの大切な役割があります!
① 集約の取得
「これが欲しい!」というときに、すぐに必要なものを取り出します。
🌟 例:学校なら「生徒リポジトリ」から生徒の情報を探して取得します。
📝 ポイント:集約を取り出すときは、その集約を特定するための識別子(例えば、生徒番号やID)をリポジトリに伝える必要があります!
② 集約の永続化
「これを大事に保存しておこう!」というとき、情報を失くさないようにちゃんと保存します。
📚 例:新しい生徒が入学したら、生徒リポジトリに情報を追加して安全に保管します。
🛠 実際のリポジトリの使い方
リポジトリを使った流れはシンプル!
- リポジトリに「お願い!○○をください!」と識別子を伝える(検索)
- リポジトリがデータベースやファイルなどから情報を探してくれる
- 見つけた情報を使って色々な作業をする
- 新しく追加や変更があれば、リポジトリに「これを保存してね!」と伝える(保存)
✨ リポジトリを使うメリット
- 必要なデータを簡単に見つけて取り出せる!
- データを安全に管理できるので安心!
- コードがシンプルになり、後で見直しや変更が簡単になる!
🌈 まとめ
リポジトリを使えば、ドメインモデルを簡単に、安全に管理できちゃいます!
DDDのリポジトリをしっかり理解して、明るく楽しく素敵なシステムを作りましょう!🚀😄✨