Sobes.tech
Junior — Middle

Jaki jest związek między warstwami UseCase i Repository w architekturze aplikacji?

sobes.tech AI

Odpowiedź od AI

W architekturze aplikacji warstwa UseCase odpowiada za logikę biznesową i koordynację działań, natomiast warstwa Repository zajmuje się dostępem do danych (np. do bazy danych lub zasobów sieciowych).

Ich relacja wygląda następująco:

  • UseCase wywołuje metody Repository w celu pobrania lub zapisania danych.
  • Repository enkapsuluje szczegóły przechowywania i pobierania danych, zapewniając UseCase prosty interfejs.

To rozdzielenie pozwala na zmianę implementacji dostępu do danych bez zmiany logiki biznesowej i ułatwia testowanie.

Przykład:

class UserRepository {
    fun getUser(id: String): User { /* dostęp do bazy danych */ }
}

class GetUserUseCase(private val userRepository: UserRepository) {
    fun execute(id: String): User {
        return userRepository.getUser(id)
    }
}