Logo David Burdelak
Słownik · Programowanie i wzorce projektowe

Co to jest wzorzec Repozytorium?

Ostatnia aktualizacja:

Wzorzec Repozytorium (Repository) wprowadza warstwę pośrednią między logiką aplikacji a źródłem danych, np. bazą. Udostępnia metody w rodzaju znajdzPoId() czy zapisz(), a szczegóły zapytań SQL lub użytego ORM-a pozostają ukryte wewnątrz.

Jak to wygląda?

Aplikacja korzysta z interfejsu ArtykulRepozytorium, a jego implementacja może używać MySQL, pliku JSON lub zewnętrznego API. Logika biznesowa nie wie, skąd pochodzą dane, więc łatwo podmienić źródło lub wstawić wersję w pamięci na potrzeby testów.

Zalety

Rozdziela odpowiedzialności, porządkuje zapytania w jednym miejscu i upraszcza testy jednostkowe. Dobrze pasuje do architektury warstwowej i podejścia Domain-Driven Design.

Kiedy to przesada?

W prostych aplikacjach CRUD, gdzie ORM już zapewnia wygodny dostęp, dodatkowa warstwa bywa zbędna i tylko kopiuje metody. Warto ją wprowadzać, gdy zapytania są złożone lub źródło danych może się zmienić.

Repozytorium a Active Record

W Active Record obiekt sam wie, jak się zapisać w bazie, a w Repozytorium za dostęp do danych odpowiada osobna klasa. Pierwsze podejście jest szybsze w prostych aplikacjach, drugie lepiej sprawdza się, gdy logika biznesowa ma być niezależna od bazy. Wybór wynika ze skali projektu, a nie z mody.

Powiązane pojęcia

Wszystkie hasła z kategorii Programowanie i wzorce projektowe