Alternativa A - Invenção Pura.
Explicação Didática
O texto descreve um cenário clássico de refatoração de código onde a lógica de cálculo foi removida da classe de domínio (Pedido) e colocada em novas classes especializadas. Para identificar o padrão correto, precisamos analisar a definição dada no enunciado.
O que é o Padrão GRASP?
GRASP (General Responsibility Assignment Software Patterns) são padrões de responsabilidade geral para atribuição de tarefas em sistemas orientados a objetos. Eles ajudam a decidir quais classes devem realizar quais responsabilidades.
Análise da Alternativa A: Invenção Pura
Este padrão recomenda a criação de classes que não mapeiam entidades reais do problema de negócio. Elas são "inventadas" apenas para melhorar a qualidade do design de software.
- Objetivo: Evitar acoplamento alto ou coesão baixa nas classes de domínio.
- Característica: A classe criada não corresponde a um objeto físico ou conceitual existente no mundo real.
- No Enunciado: O texto diz explicitamente: "classes que não representam diretamente elementos concretos encontrados no domínio no negócio". Isso é a definição literal de Invenção Pura. Os cálculos de frete são tratados por classes criadas especificamente para essa finalidade, e não como parte intrínseca do pedido em si.
Por que as outras alternativas não se encaixam?
| Alternativa | Motivo da Incorreção |
|---|
| B - Especialista na Informação | Recomenda dar a responsabilidade à classe que já possui os dados necessários. Aqui, a lógica saiu da classe que tem os dados (Pedido). |
| C - Polimorfismo | É um mecanismo de linguagem ou um princípio de design, mas não é o nome do padrão GRASP que define a criação de classes abstratas de negócio. |
| D - Acoplamento Baixo | É um objetivo geral do design, não o nome do padrão específico que prescreve a criação dessas classes intermediárias. |
| E - Indireção | Foca em usar um objeto intermediário para reduzir o acoplamento entre dois outros objetos. Embora haja indireção, o foco do texto é na natureza das classes (não pertencerem ao domínio), definindo Invenção Pura. |
Conclusão
A frase chave "não representam diretamente elementos concretos encontrados no domínio" identifica inequivocamente o padrão Invenção Pura, pois essas classes foram criadas artificialmente para organizar comportamentos sem corresponder a entidades reais do negócio.
Portanto, a resposta correta é a Alternativa A.