Questão nº 56

Questão de Tecnologia da Informação · CESGRANRIO BASA 01/2024 (nº 56)

CESGRANRIO2024Técnico Científico - Área de Formação: Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Cver comentário ↓

Um time de desenvolvimento está trabalhando em um sistema financeiro que processa transações bancárias. Para garantir que o sistema seja flexível, escalável e fácil de manter, o time decide usar padrões de projeto. Após uma análise cuidadosa de uma situação encontrada, eles escolhem como solução uma combinação de dois padrões de projeto. O primeiro padrão de projeto escolhido é usado para criar instâncias de objetos necessários para processar diferentes tipos de transações, enquanto o segundo padrão de projeto escolhido garante que o sistema possa tratar uma série de requisições de transações de forma flexível e extensível.
Considerando-se o contexto descrito, quais são os dois padrões de projeto escolhidos?

Resposta comentada

Gabarito Alternativa C

Conceito-chave: Padrões de projeto são soluções reutilizáveis para problemas comuns. Aqui, o problema é duplo: criar objetos de transação (sem acoplar o código a classes concretas) e encadear o processamento dessas transações de forma flexível (cada etapa pode tratar ou passar adiante).

  • (A) Incorreta: Abstract Factory cria famílias de objetos relacionados, mas não é ideal para "tipos de transações" individuais; Command encapsula uma ação como objeto, mas não cria uma cadeia de tratamento sequencial.
  • (B) Incorreta: Builder é para construção passo a passo de um objeto complexo, não para selecionar tipos de transação; Strategy troca algoritmos em tempo de execução, mas não encadeia requisições em sequência.
  • (C) Correta: Factory Method define uma interface para criar objetos, deixando subclasses decidirem qual classe instanciar (perfeito para "diferentes tipos de transações"); Chain of Responsibility permite passar a requisição por uma corrente de handlers, onde cada um decide processar ou repassar (ideal para "série de requisições de forma flexível e extensível").
  • (D) Incorreta: Prototype clona objetos existentes, não cria tipos variados de transação; Mediator centraliza comunicação entre objetos, mas não cria uma cadeia de processamento.
  • (E) Incorreta: Singleton garante uma única instância global, não resolve criação variada; Observer notifica mudanças de estado, não processa requisições em cadeia.

Armadilha da banca (no distrator mais tentador, A): A combinação Abstract Factory + Command parece plausível porque "Abstract Factory" soa como "criar objetos" e "Command" soa como "executar ações". Mas a pegadinha é que Abstract Factory cria famílias de objetos relacionados (ex.: botões e janelas do mesmo tema), não tipos diferentes de uma mesma família (como transações). E Command encapsula uma única ação, não uma cadeia de tratamento onde cada elo decide se processa ou repassa — isso é exclusivo do Chain of Responsibility. A banca troca "Factory Method" por "Abstract Factory" e "Chain of Responsibility" por "Command" para confundir quem decora nomes sem entender o propósito.

Fonte: CESGRANRIO BASA 01/2024 Técnico Científico - Área de Formação: Tecnologia da Informação (Caderno Prova B). 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