Junior — Middle
Можете ли објаснити концепт анемичног модела и у чему се састоји?
sobes.tech АИ
Одговор од АИ
Анемични модел (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.