Sobes.tech
Middle — Middle+

Təmiz Arxitekturada asılılıqların tərs çevrilməsi prinsipi qatlar arasında məsuliyyəti ayırmaq üçün necə tətbiq olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Təmiz Arxitekturada, Asılılıqın Tərs Çevrilməsi Prinsipi (Dependency Inversion Principle) aşağıdakı şəkildə məsuliyyəti qatlar arasında bölür:

  • Yüksək səviyyəli modullar (məsələn, biznes məntiqi) aşağı səviyyəli modullara (məsələn, məlumatlara giriş və ya UI tətbiqi) bağlı deyil, hər ikisi də abstraksiyalara (interfeyslərə) bağlıdır.

  • Abstraksiyalar daha yüksək səviyyəli qatlarda (məsələn, domen qatında) müəyyən edilir və bu interfeyslərin tətbiqləri aşağı qatlarda (məsələn, infrastrukturda) yerləşir.

  • Bu, biznes məntiqinin tətbiq detalları ilə müstəqil olmasını təmin edir, bu da testləri, dəstəyi və genişləndirməni asanlaşdırır.

Nümunə: domen qatında bir repository interfeysi müəyyən edilir:

interface UserRepository {
    fun getUser(id: String): User
}

Data qatında bu interfeys tətbiq edilir:

class UserRepositoryImpl : UserRepository {
    override fun getUser(id: String): User {
        // verilənlər bazasına girişin tətbiqi
    }
}

Biznes məntiqi yalnız UserRepository interfeysinə bağlıdır və konkret tətbiq konstruktor və ya DI konteyner vasitəsilə enjekte edilir. Bu şəkildə, qatlar abstraksiyalar vasitəsilə əlaqələndirilir, birbaşa deyil.