Junior — Middle
Puteți explica conceptul de model anemic și în ce constă?
sobes.tech AI
Răspuns de la AI
Modelul anemic (Anemic Domain Model) este un anti-patern în proiectarea orientată pe obiect, în care obiectele conțin doar date (câmpuri) fără logică de business, iar întreaga logică este implementată în afara acestor obiecte, de exemplu, în servicii sau controlere.
Esenta modelului anemic este că obiectele de domeniu devin structuri de date 'plate', ceea ce contravine principiilor designului orientat pe obiect, unde datele și comportamentul trebuie să fie încapsulate împreună. Acest lucru poate duce la un cod mai dificil de întreținut și mai puțin extensibil.
Exemplu de model anemic:
class User {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
// Logica de verificare a vârstei a fost separată
func isAdult(user: User) -> Bool {
return user.age >= 18
}
În contrast, într-un model bogat (Rich Domain Model), metoda isAdult ar fi parte a clasei User.