Sobes.tech
Junior — Middle

Meg tudná magyarázni az anémiás modell fogalmát és lényegét?

sobes.tech MI

Válasz az MI-től

Anémiás modell (Anemic Domain Model) egy anti-minta az objektumorientált tervezésben, ahol az objektumok csak adatokat (mezőket) tartalmaznak, üzleti logika nélkül, és az összes logikát ezeken kívül, például szolgáltatásokban vagy vezérlőkben valósítják meg.

Az anémiás modell lényege, hogy a domain objektumok 'lapos' adatstruktúrákká válnak, ami ellentmond az objektumorientált tervezés alapelveinek, ahol az adatok és a viselkedés együtt kell, hogy legyenek inkapszulálva. Ez kevésbé karbantartható és bővíthető kódhoz vezethet.

Példa az anémiás modellre:

class User {
    var name: String
    var age: Int

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

// Az életkori ellenőrzés logikája külön van választva
func isAdult(user: User) -> Bool {
    return user.age >= 18
}

Ezzel szemben, egy gazdag modellben (Rich Domain Model), az isAdult metódus a User osztály része lenne.