Pular para o conteúdo

Serviço de Seleção do Pessoal da Marinha (SSPM) · Marinha do Brasil 2023

Questão 45 — Engenharia de Software: Princípios SOLID

Engenharia de Software Princípios SOLID

Serviço de Seleção do Pessoal da Marinha (SSPM) 2023

Marinha do Brasil · Quadro Técnico do Corpo Auxiliar da Marinha (CP-T) — Informática · Caderno Amarela

Gabarito disponível

Analise a função a seguir.

public Dinheiro calcularPagamento(Empregado e) throws TipoEmpregadoInvalido {
switch (e.tipo) {
case COMISSIONADO:
return calcularPagamentoComissionado(e);
case HORA:
return calcularPagamentoEmHoras(e);
case SALARIO:
return calcularPagamentoSalario(e);
default:
throw new TipoEmpregadoInvalido(e.tipo);
}
}

Segundo Martin (2020), quais são os dois princípios SOLID desrespeitados pela função acima?
Selecione uma alternativa

Resolução comentada

O switch por tipo viola o SRP e o OCP.

A função trata vários tipos de empregado em um só lugar, então tem mais de uma razão para mudar, o que viola o Princípio da Responsabilidade Única. Além disso, um novo tipo de empregado exige modificar a função, o que viola o Aberto-Fechado.

Análise das alternativas

B e E) Não há problema de Liskov, pois não há herança envolvida. C e D) Não há interface grande demais (ISP) nem dependência de abstrações invertida (DIP) em questão.

Referência: MARTIN, R. C. Arquitetura Limpa (2020); Código Limpo.

Resolução comentada do VaiConcursos.

Ver gabarito

Gabarito: A

Fonte: Gabarito preliminar: Gabarito final CP-T 2023 — Informática — página 7