Sapien IA
Computação Múltipla Escolha

Ao invés de colocarmos o cálculo do frete de um pedido na classe Pedido, optamos por criar uma hierarquia de classes para encapsular os diferentes algoritmos de cálculo de frete que temos no sistema. Assinale a alternativa com o nome do padrão GRASP que recomenda a criação de classes que não representam diretamente elementos concretos encontrados no domínio do negócio, seguindo uma decomposição de responsabilidades por comportamento e não por representação, como a descrita no cálculo do frete.

Ao invés de colocarmos o cálculo do frete de um pedido na classe Pedido, optamos por criar uma hierarquia de classes para encapsular os diferentes algoritmos de cálculo de frete que temos no sistema. Assinale a alternativa com o nome do padrão GRASP que recomenda a criação de classes que não representam diretamente elementos concretos encontrados no domínio do negócio, seguindo uma decomposição de responsabilidades por comportamento e não por representação, como a descrita no cálculo do frete.

  1. Invenção Pura.
  2. Especialista na Informação.
  3. Polimorfismo.
  4. Acoplamento Baixo.
  5. Indireção

Resolução completa

Explicação passo a passo

A
Alternativa A

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?

AlternativaMotivo da Incorreção
B - Especialista na InformaçãoRecomenda 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çãoFoca 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.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.