Sobes.tech
Junior — Middle

Məlumatlarla işləyərkən birbaşa anbarına müraciət etmək yerinə Interactor qatını istifadə etmək niyə daha üstün olur?

sobes.tech Süni İntellekt

AI-dan cavab

İstifadəçi interfeysi ilə repository arasında Interactor (və ya Use Case) qatının istifadəsi, biznes məntiqini məlumatların saxlanma detallərindən ayırmağa imkan verir. Bu, tətbiqin modulluğunu və test ediləbilənliyini artırır, çünki Interactor müəyyən istifadə ssenarilərindən məsuldır, repository isə yalnız məlumatlara giriş üçün cavabdehdir.

Üstünlüklər:

  • Biznes məntiqinin kapsüllənməsi: Interactor, repository detalları açıqlamadan məlumatlar üzərində əməliyyatları birləşdirir.
  • Testlərin sadələşdirilməsi: Biznes məntiqi ayrıca test edilə bilər, repository yerinə mock və ya stub istifadə edilərək.
  • Əlverişlilik: Məlumat mənbəyi dəyişdikdə (məsələn, yerli verilənlər bazasından şəbəkəyə keçid), yalnız repository dəyişir, Interactor isə dəyişmir.

Nümunə:

class UserInteractor(private val userRepository: UserRepository) {
    fun getUserProfile(userId: String): UserProfile {
        val user = userRepository.getUserById(userId)
        // Əlavə məntiq, məsələn, filtr və ya toplama
        return UserProfile(user.name, user.age)
    }
}