Repositoryパターンとは

概要

Repositoryパターンとは、
プログラムの中でデータの取得・保存などの処理を専用のクラスにまとめて管理する設計パターンです。
ビジネスロジック(アプリの本質的な処理)とデータ操作(DBとのやりとり)を分離でき、
コードが見やすく・保守しやすくなります。

正式名称

Repository Pattern(リポジトリパターン)

略称

特になし

特徴

  • データベース操作のコードを1カ所(Repository)にまとめられる
  • ビジネスロジックとデータアクセスを分離できる(関心の分離)
  • 単体テストがしやすくなる(DBを使わずモックでテストできる)
  • 保守性・再利用性が高まる
  • ORM(例:Entity Framework、Hibernate)との相性が良い
  • DDD(ドメイン駆動設計)でもよく使われる

具体例

たとえば「ユーザー情報を扱うシステム」がある場合

Repositoryクラスの例(擬似コード)

class UserRepository:
    def find_by_id(self, user_id):
        # DBからユーザーを検索する処理
        pass

    def save(self, user):
        # ユーザー情報をDBに保存する処理
        pass

サービス側の利用例

repo = UserRepository()
user = repo.find_by_id(1)
user.name = "山田太郎"
repo.save(user)

→ データベースの具体的な操作はすべて UserRepository に隠され、他のコードはシンプルになります。

関連用語

用語解説
DAO(Data Access Object)Repositoryと似た役割。特にデータベース操作に特化した設計パターン
ORM(Object-Relational Mapping)オブジェクトとDBのテーブルを自動で対応させる仕組み
(例:SQLAlchemy, Hibernate)
サービス層(Service Layer)ビジネスロジックをまとめる層。Repositoryとは役割を分けて設計する
DDD(ドメイン駆動設計)ビジネスの本質(ドメイン)を中心にソフトウェアを設計する考え方。
Repositoryは重要なパターンの一つ
MVCモデルアプリを「モデル・ビュー・コントローラ」に分けて構成する設計。
Repositoryは「モデル層」によく登場する
タイトルとURLをコピーしました