Junior — Middle
Kunt u het concept van het anemische model uitleggen en waar het op neerkomt?
sobes.tech AI
Antwoord van AI
Het anemische model (Anemic Domain Model) is een anti-patroon in objectgeoriënteerd ontwerp, waarbij objecten alleen gegevens (velden) bevatten zonder bedrijfslogica, en alle logica wordt geïmplementeerd buiten deze objecten, bijvoorbeeld in services of controllers.
De essentie van het anemische model is dat domeinobjecten 'platte' gegevensstructuren worden, wat in tegenspraak is met de principes van objectgeoriënteerd ontwerp, waar gegevens en gedrag samen ingekapseld moeten worden. Dit kan leiden tot minder onderhoudbare en minder uitbreidbare code.
Voorbeeld van een anemisch model:
class User {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
// De logica voor leeftijdscontrole is apart gezet
func isAdult(user: User) -> Bool {
return user.age >= 18
}
In tegenstelling tot een rijk model (Rich Domain Model), zou de methode isAdult deel uitmaken van de klasse User.