Sobes.tech
Junior — Middle

Kas saaksite selgitada aneemilise mudeli kontseptsiooni ja selle olemust?

sobes.tech AI

Vastus AI-lt

Aneemiline mudel (Anemic Domain Model) on anti-muster objektorienteeritud disainis, kus objektid sisaldavad ainult andmeid (välju) ilma äriloogikata, ning kogu loogika realiseeritakse nende objektide väliselt, näiteks teenustes või kontrollijates.

Aneemilise mudeli olemus on see, et domeenobjektid muutuvad 'lame' andmestruktuurideks, mis on vastuolus objektorienteeritud disaini põhimõtetega, kus andmed ja käitumine peaksid olema koos kapseldatud. See võib viia vähem hooldatava ja vähem laiendatava koodini.

Näide aneemilisest mudelist:

class User {
    var name: String
    var age: Int

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

// Vanuse kontrollimise loogika on eraldatud
func isAdult(user: User) -> Bool {
    return user.age >= 18
}

Vastupidiselt sellele, rikkaliku mudeli (Rich Domain Model) puhul oleks meetod isAdult osa User klassist.