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.