Cześć
Czy można łączyć DAO i Repositiry w jednym projekcie i np dla jednej encji ? W szczegolnie gdy mam proste i skomplikowane zapytania ?
Jak dla mnie DAO i Repository to, to samo. W obu przypadkach jest to interfejs do pobierania encji/danych z bazy. Pytanie: po co chcesz mieć DAO i Repository do tej samej encji?
- Nie, to nie to samo. DAO działa na poziomie jednej encji/obiektu, a repozytorium na poziomie całych operacji
- Pewnie można to spiąć, tylko czy jest sens?
Zależy co rozumiesz przez DAO i Repository...
Historia pokazuje, że ta sama nazwa może być używana w odniesieniu do różnych rzeczy, ale też, różne nazwy mogą być używane do opisania tego samego konceptu.
Jak dla mnie DAO -> wyciągasz/utrwalasz dane, tzn. dla klasy Person wyciągasz dane PersonData(imie='Jan',nazwisko='Kowalski') i na tej podstawie jesteś w stanie skonstruować obiekt Person.
Repository -> dostajesz obiekt domenowy Person
Shalom napisał(a):
- Nie, to nie to samo. DAO działa na poziomie jednej encji/obiektu, a repozytorium na poziomie całych operacji
To stara i niezbyt popularna definicja.
Jest po prostu tak, że masz DAO i pewnego pięknego dnia twój architekt w projekcie/ lider czy ktoś tam oznajmia, że robicie DDD.
I wtedy magicznie (to jest moment) wszystkie DAO zmieniają się w Repository.