Questão FC373765
Considere o trecho de código 1 simplificado e sem erros de sintaxe. static void ItemSelecionado(string item){ switch(item){ case "1": Dados.Clear( ); Metodo1( ); break; case "2": D
Conceitos Gerais de Engenharia de Software
FCC · 2019
Considere o trecho de código 1 simplificado e sem erros de sintaxe.
static void ItemSelecionado(string item){
switch(item){
case "1": Dados.Clear( ); Metodo1( );
break;
case "2": Dados.Clear( ); Metodo2( );
break;
case "3": Dados.Clear( ); Metodo3( );
break;
case "4": Dados.Clear( ); return;
default: Dados.Clear( ); Console.WriteLine("Item inválido");
break;
}
}
Considere o trecho de código 2 simplificado e também sem erros de sintaxe.
static void ItemSelecionado(string item){
Dados.Clear( );
switch(item){
case "1": Metodo1( );
break;
case "2": Metodo2( );
break;
case "3": Metodo3( );
break;
case "4": return;
default: Console.WriteLine("Item inválido");
break;
}
}
Considere as afirmativas sobre os trechos de código 1 e 2 e princípios de Engenharia de Software.
I. Princípio DRY: cada parte do conhecimento deve ter uma representação única, não ambígua e definitiva dentro do sistema.
II. O código duplicado visa garantir que todas as instâncias repetidas serão modificadas quando uma alteração for requerida.
III. O código 2 aplica um princípio cujo conceito está em conformidade com o princípio Open/Closed, que se refere à criação de código reutilizável que pode ser consumido por mais de uma entidade.
Está correto o que consta em
- I e II, apenas.
- II e III, apenas.
- I, II e III.
- I e III, apenas.
- III, apenas.
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
DRY (Don't Repeat Yourself) exige uma única representação de uma mesma responsabilidade no sistema. No Código 1 o método Dados.Clear() aparece repetido em cada case, gerando duplicação e potencial ambiguidade sobre onde e quando o dado é limpo.
No Código 2 a chamada a Dados.Clear() foi centralizada antes do switch, eliminando a repetição. Assim, há uma única fonte de verdade para essa ação, o que facilita correções e reduz risco de inconsistência.
O princípio Open/Closed diz que um módulo deve ser aberto à extensão, mas fechado à modificação. Ao separar a responsabilidade de limpeza do fluxo de seleção, o código permite adicionar novos casos (extensão) sem tocar na lógica de limpeza (sem modificação), aumentando reutilização e segurança na manutenção.
Resumo: centralizar Dados.Clear() aplica DRY e favorece o espírito do Open/Closed, justificando a escolha da alternativa.
Conteúdo do catálogo FC Concursos · Atualizado em