Sobes.tech
Junior — Middle

Ar galite paaiškinti anemijos modelio koncepciją ir esmę?

sobes.tech AI

Atsakymas iš AI

Aneminis modelis (Anemic Domain Model) yra anti-pavyzdys objektinio programavimo dizaino srityje, kai objektai turi tik duomenis (laukus) be verslo logikos, o visa logika įgyvendinama už šių objektų ribų, pavyzdžiui, paslaugose ar kontroleriuose.

Aneminio modelio esmė ta, kad domeno objektai tampa „plokščiomis“ duomenų struktūromis, kas prieštarauja objektinio dizaino principams, kur duomenys ir elgesys turėtų būti inkapsuliuoti kartu. Tai gali sukelti mažiau prižiūrimą ir mažiau išplečiamą kodą.

Aneminio modelio pavyzdys:

class User {
    var name: String
    var age: Int

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

// Amžiaus patikros logika yra atskirta
func isAdult(user: User) -> Bool {
    return user.age >= 18
}

Priešingai, turtingame modelyje (Rich Domain Model), isAdult metodas būtų dalis User klasės.