Questão nº 60

Questão de Desenvolvimento de Sistemas · FCC TRT15 2023 (nº 60)

FCC2023Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoDesenvolvimento de Sistemas
Gabarito: Cver comentário ↓

Considere o seguinte caso hipotético:

Um Analista de um Tribunal Regional do Trabalho está criando uma aplicação de gerenciamento de logística para distribuição de processos. A primeira versão da sua aplicação pode lidar apenas com a distribuição física feita por meio de pessoas, portanto, a maior parte do código fica dentro da classe `Entregador`. Depois de um tempo, a aplicação se torna bastante utilizada e ele recebe frequentemente várias solicitações de outros departamentos do órgão para incorporar, na aplicação, a logística de distribuição dos processos digitalizados por meio do computador. A adição de uma nova classe (meio) de distribuição ao programa causa um problema porque adicionar uma nova classe ao programa não é tão simples se o restante do código já estiver acoplado às classes existentes. Atualmente, a maior parte do código é acoplada à classe `Entregador`. Adicionar `Computador` à aplicação exigiria alterações em toda a base de código. Além disso, se mais tarde ele decidir adicionar outro meio de distribuição à aplicação, provavelmente precisará fazer todas essas alterações novamente. Como resultado, ele terá um código bastante sujo, repleto de condicionais que alteram o comportamento da aplicação, dependendo da classe de objetos de meio de distribuição.

Uma solução de melhoria para deixar o código mais limpo e manutenível é usar o padrão de projeto

Resposta comentada

Gabarito Alternativa C

O padrão Factory Method (Método de Fábrica) é uma forma de criar objetos sem expor a lógica de instanciação ao cliente, permitindo que subclasses decidam qual classe concreta instanciar. Ele resolve o problema de adicionar novos tipos de objetos sem modificar o código existente que os utiliza.

  • (A) Incorreta: O padrão Bridge (Ponte) separa uma abstração de sua implementação, permitindo que ambos variem independentemente. Ele é mais focado em desacoplar hierarquias, não em criar objetos de forma flexível.
  • (C) Correta: O padrão Factory Method é a solução ideal aqui porque permite criar uma "fábrica" (um método) que decide qual tipo de "meio de distribuição" (seja Entregador ou Computador) será criado. O restante da aplicação chama esse método de fábrica para obter o objeto de distribuição necessário, sem precisar saber os detalhes de como ele foi criado. Assim, quando um novo meio de distribuição for adicionado, apenas a fábrica precisará ser atualizada, e não todo o código que usa os meios de distribuição.
  • (B) Incorreta: O padrão Composite (Composto) permite agrupar objetos em estruturas de árvore para representar hierarquias de composição. Ele é usado para tratar objetos individuais e compostos de forma uniforme, não para gerenciar a criação de diferentes tipos de objetos.
  • (D) Incorreta: O padrão Iterator (Iterador) fornece uma maneira de acessar os elementos de um objeto agregado sequencialmente sem expor sua representação subjacente. Ele é focado em percorrer coleções, não em criar objetos.
  • (E) Incorreta: O padrão Builder (Construtor) foca na construção de objetos complexos passo a passo, separando a construção da representação do objeto. Ele é mais sobre como um objeto é construído internamente, não sobre qual tipo de objeto criar.

Fonte: FCC TRT15 2023 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 002). 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