FC ConcursosFC Concursos

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

  1. I e II, apenas.
  2. II e III, apenas.
  3. I, II e III.
  4. I e III, apenas.
  5. 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

Continue aprendendo