Junior — Middle
Можете ли да обясните концепцията за анемичен модел и в чем се състои?
sobes.tech AI
Отговор от AI
Анемичният модел (Anemic Domain Model) е анти-патърн в обектно-ориентираното проектиране, при който обектите съдържат само данни (полета) без бизнес логика, а цялата логика се реализира извън тези обекти, например в услуги или контролери.
Същността на анемичния модел е, че домейн обектите стават 'плоски' структури от данни, което противоречи на принципите на обектно-ориентирания дизайн, където данните и поведението трябва да бъдат инкапсулирани заедно. Това може да доведе до по-малко поддържан и по-малко разширяем код.
Пример за анемичен модел:
class User {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
// Логиката за проверка на възрастта е отделена
func isAdult(user: User) -> Bool {
return user.age >= 18
}
В противоположност на това, в богат модел (Rich Domain Model), методът isAdult би бил част от класа User.