devterview_$ iniciar simulação

Modelo de domínio anêmico

DifícilSêniorDesign OO

Pergunta

O que é um 'modelo de domínio anêmico' e por que ele é considerado um antipadrão em OO (ainda que comum)?

Resposta esperada

É quando as classes de domínio são só sacos de dados com getters/setters, e toda a lógica de negócio vive em classes de 'serviço' que operam sobre esses dados de fora. Parece organizado, mas joga fora a ideia central de OO — juntar dados e comportamento — e traz problemas: as regras que garantem a consistência de um objeto ficam longe dele, espalhadas por vários serviços, então é fácil um caminho de código esquecer uma validação; o objeto pode existir em estado inválido; e a lógica duplica. O contraponto (modelo 'rico'): o objeto `Pedido` tem `adicionarItem`, `aplicarCupom`, `fechar` — métodos que mantêm os invariantes — e o serviço orquestra casos de uso, não implementa a regra. Nem sempre é errado (às vezes a 'lógica' é mesmo procedural, ou o time usa outro paradigma), mas chamar de 'design OO' um modelo anêmico é enganoso.

Por que perguntam isso

Pergunta sênior. Conecta com a pergunta de encapsulamento. Bom candidato reconhece que nem sempre é errado (paradigma diferente), só não é 'OO de verdade'.

#modelo-anemico#domain-model#antipadrao
publicidade

Relacionadas