Mobiliosios programėlės
Pamoka 5 / 8 Room duomenų bazė ~55 min
7 / 8

Sukurk NoteRepository sluoksnį

Vis dar data pakete sukurk NoteRepository.kt.

Kodėl Repository?

Šiuo metu jis tiesiog perduoda iškvietimus DAO. Atrodo nereikalingas. Bet:

  • Jei rytoj norėsi sinchronizuoti pastabas su serveriu, save() taps protingesnis — pirma įrašys lokaliai, paskui išsiųs į API. ViewModel nepasikeis.
  • Testai gali pakeisti NoteRepository su fake versija.
  • ViewModel niekada nematys Note kaip Room entiteto — tik kaip domeno objektą.

save() metodas turi protingumo: jei id == 0L (numatytasis), tai nauja pastabos — insert. Kitu atveju — update.