読者です 読者をやめる 読者になる 読者になる

理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

PoEAA: Repository

poeaa

パターン名からは DI 用のパターンかな??と思っておりましたが、Repository はドメイン層とデータマッピング層の中間に存在する抽象化レイヤです。

Repository は、言ってみればクエリ生成を一手に引き受け、そのクエリによって抽出されたドメインをクライアントに返却するオブジェクトです。Repository を使用するクライアントは、その背景にあるデータアクセスや、データからドメインへのマッピングを完全に Repository に任せることで、データアクセスをあたかも Collection へのアクセスのようにブラックボックス化させることができます。言い換えれば、クライアントにとっての Repository は、ドメインオブジェクトの Collection クラスと同一視できるものです。 上図は Repository の使用をシーケンスで記載したものになっていますが、クライアントは抽出条件をクライテリアとして Repository に渡すだけで、ドメインオブジェクトが得られるようになっています。その裏では、Repository がそのクライテリアから SQL を構築し、DB からデータを取得し、データからドメインオブジェクトを生成する、といったことを実行することになるでしょう。