Sobes.tech
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.