Sobes.tech
Junior — Middle

Môžete vysvetliť koncept anemického modelu a v čom spočíva?

sobes.tech AI

Odpoveď od AI

Anemický model (Anemic Domain Model) je anti-vzor v objektovo orientovanom návrhu, kde objekty obsahujú iba údaje (polia) bez podnikovej logiky, a celá logika je implementovaná mimo týchto objektov, napríklad v službách alebo kontroléroch.

Podstata anemického modelu je, že doménové objekty sa stávajú 'povrchnými' štruktúrami údajov, čo je v rozpore s princípmi objektovo orientovaného návrhu, kde by údaje a správanie mali byť zapuzdrené spolu. To môže viesť k menej udržiavateľnému a menej rozšíriteľnému kódu.

Príklad anemického modelu:

class User {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

// Logika kontroly veku je oddelená
func isAdult(user: User) -> Bool {
    return user.age >= 18
}

Naopak, v bohatom modeli (Rich Domain Model), by metóda isAdult bola súčasťou triedy User.