Sobes.tech
Junior — Middle

Puoi spiegare il concetto di modello anemico e di cosa si tratta?

sobes.tech AI

Risposta dell'AI

Il modello anemico (Anemic Domain Model) è un anti-pattern nella progettazione orientata agli oggetti, in cui gli oggetti contengono solo dati (campi) senza logica di business, e tutta la logica viene implementata al di fuori di questi oggetti, ad esempio nei servizi o nei controller.

L'essenza del modello anemico è che gli oggetti di dominio diventano strutture di dati 'piatte', il che contravviene ai principi della progettazione orientata agli oggetti, dove dati e comportamento dovrebbero essere incapsulati insieme. Questo può portare a un codice meno manutenibile e meno estensibile.

Esempio di modello anemico:

class User {
    var name: String
    var age: Int

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

// La logica di verifica dell'età è stata separata
func isAdult(user: User) -> Bool {
    return user.age >= 18
}

Al contrario, in un modello ricco (Rich Domain Model), il metodo isAdult sarebbe parte della classe User.