リポジトリ@オブジェクトリレーショナルメタデータマッピングパターン「仕様」を満たすデータ取得レイヤ。どういうこと?リポジトリは、ドメイン層とデータマッピング層を仲介し、ドメインオブジェクトに対してコレクションのようにアクセスできるインターフェースを提供します。リポジトリにより、クライアントは、「仕様」を満たすコレクションを、クエリオブジェクトやクライテリアを使用することなく、宣言的に取得することができます。どうすれば?リポジトリは、ドメインオブジェクトに対して、データマッパーの検索を隠蔽します。リポジトリは、内部的に『クエリーオブジェクト』を生成して検索を実行し、クライアントには単純な検索インターフェイスだけを公開します。どうして?データマッパーは、ドメインオブジェクトをデータベースアクセスコードから分離する「レイヤ」です。このよう構成の中で、クエリ部分を別途「レイヤ」化することには価値が