Junior — Middle
Můžete vysvětlit koncept anemického modelu a v čem spočívá?
sobes.tech AI
Odpověď od AI
Anemický model (Anemic Domain Model) je anti-vzor v objektově orientovaném návrhu, kde objekty obsahují pouze data (pole) bez podnikové logiky, a veškerá logika je implementována mimo tyto objekty, například ve službách nebo kontrolerech.
Podstata anemického modelu je, že doménové objekty se stávají 'povrchovými' datovými strukturami, což odporuje principům objektově orientovaného návrhu, kde by data a chování měly být zapouzdřeny dohromady. To může vést k méně udržovatelnému a méně rozšiřitelnému kódu.
Pří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 věku je oddělena
func isAdult(user: User) -> Bool {
return user.age >= 18
}
Naopak, v bohatém modelu (Rich Domain Model) by metoda isAdult byla součástí třídy User.