Questão nº 50

Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 50)

FGV2024Analista Judiciário - Análise de Sistemas de InformaçãoTecnologia da Informação
Gabarito: Aver comentário ↓

O analista Joaquim implementou o código do sistema TRF1Web
seguindo os princípios SOLID. O TRF1Web já se encontra em
produção. A documentação do TRF1Web, escrita por Joaquim,
estabelece que novas funcionalidades devem ser introduzidas no
sistema por meio de plugins, sem modificar o código atual do
sistema.
Essa maneira de introduzir novas funcionalidades no TRF1Web é
resultado direto da aplicação do seguinte princípio SOLID:

Resposta comentada

Gabarito Alternativa A

O princípio aberto/fechado (Open/Closed Principle - OCP) diz que um módulo de software deve ser aberto para extensão, o que significa que novas funcionalidades podem ser adicionadas, mas fechado para modificação, ou seja, o código existente e testado não deve ser alterado.

  • (A) Correta: O princípio aberto/fechado é diretamente aplicado aqui, pois a introdução de novas funcionalidades via plugins, sem modificar o código existente, é a essência de ser "aberto para extensão e fechado para modificação".
  • (B) Incorreta: O princípio da substituição de Liskov trata da compatibilidade de subtipos, garantindo que objetos de uma superclasse possam ser substituídos por objetos de suas subclasses sem quebrar o programa. Não se relaciona com a adição de funcionalidades por plugins.
  • (C) Incorreta: O princípio da responsabilidade única afirma que uma classe deve ter apenas um motivo para mudar, focando na coesão e na separação de preocupações. Não aborda a extensão do sistema sem modificação.
  • (D) Incorreta: O princípio da segregação de interfaces sugere que interfaces grandes devem ser divididas em interfaces menores e mais específicas, para que os clientes não sejam forçados a depender de métodos que não usam. Não se aplica à forma de adicionar novas funcionalidades.
  • (E) Incorreta: O princípio da inversão de dependência prega que módulos de alto nível não devem depender de módulos de baixo nível, mas sim de abstrações. Embora plugins possam se beneficiar da inversão de dependência para sua integração, a descrição do cenário ("introduzir novas funcionalidades... sem modificar o código atual") descreve diretamente o objetivo do princípio aberto/fechado, não o mecanismo de inversão de dependência. A armadilha aqui é confundir uma técnica que ajuda a implementar um princípio (DIP para OCP) com o princípio em si que está sendo descrito.

Fonte: FGV TRF1 2024 Analista Judiciário - Análise de Sistemas de Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho