Sobes.tech
Junior — Middle

Anemik model anlayışını və onun mahiyyətini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Anemik Model (Anemic Domain Model) obyekt yönümlü dizaynda anti-pattrendir və obyektlər yalnız məlumatlar (sahələr) ehtiva edir, biznes məntiqi isə bu obyektlərdən kənarda, məsələn, xidmətlər və ya nəzarətçilərdə həyata keçirilir.

Anemik modelin mahiyyəti odur ki, domen obyektləri 'səpələnmiş' məlumat strukturlarına çevrilir, bu isə obyekt yönümlü dizayn prinsiplərinə ziddir; burada məlumatlar və davranış birlikdə kapsüllənməlidir. Bu, daha az dəstəklənən və daha az genişlənə bilən koda səbəb ola bilər.

Anemik model nümunəsi:

class User {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

// Yaş yoxlama məntiqi ayrılmışdır
func isAdult(user: User) -> Bool {
    return user.age >= 18
}

Əksinə, zəngin modeldə (Rich Domain Model), isAdult metodu User sinfinin bir hissəsi olardı.