Sobes.tech
Junior — Middle

Pode explicar o conceito de modelo anêmico e em que consiste?

sobes.tech IA

Resposta da IA

O Modelo Anémico (Anemic Domain Model) é um anti-padrão no design orientado a objetos, onde os objetos contêm apenas dados (campos) sem lógica de negócio, e toda a lógica é implementada fora desses objetos, por exemplo, em serviços ou controladores.

A essência do modelo anémico é que os objetos de domínio se tornam estruturas de dados 'planas', o que contraria os princípios do design orientado a objetos, onde os dados e o comportamento devem estar encapsulados juntos. Isso pode levar a um código menos sustentável e menos extensível.

Exemplo de modelo anémico:

class User {
    var name: String
    var age: Int

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

// A lógica de verificação da idade foi separada
func isAdult(user: User) -> Bool {
    return user.age >= 18
}

Em contraste, num modelo rico (Rich Domain Model), o método isAdult faria parte da classe User.