Repositoryオブジェクトとは、DAOやActiveRecordなど、DBの一行と対応するデータアクセスモジュールを集約し、特定のドメインモデルを生成する為の窓口である
リポジトリは、ドメインモデル(問題や課題を解く考え方)を投影したドメインオブジェクト(設計・実装)を永続するための責務。 DAOやActiveRecordやDBですらも直接関係ありません。そのためリポジトリのメソッドは、ドメインのユビキタス言語由来ではなく、保存・削除・取得・検索の用語に対応したものになります。これは抽象的な操作を表しています。実装が何かは特に決まっていません。もちろん、多くはRDBMSに対応づくものになりますが、責務としては分離して考えたほうがよいですね。
なので、リポジトリの実装が具体的にRDBMSやNoSQLを利用したり、DAOやActiveRecordを利用するかはリポジトリから見た場合は要求によりけりです。ファイルやAPIサーバに対応したリポジトリもあってもよいでしょう。
**ある意味、DAOやRDBMS視点から考えるのではなく、ドメインオブジェクトのシリアライザー・デシリアライザーと考えて設計するとよいです。**RDBMSに対応するリポジトリ実装であれば、ドメインオブジェクトをテーブルのレコードへシリアライズする、もしくはレコードからデシリアライズするといった具合です。もちろん、リポジトリの内部実装でDAOやActive Recordを使うことも可能です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。