Um time de desenvolvimento está trabalhando em um sistema f...

Próximas questões
Com base no mesmo assunto
Q3057481 Engenharia de Software
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? 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta para a questão apresentada é a C - Factory Method e Chain of Responsibility.

Vamos entender por que esta é a resposta correta e examinar cada uma das alternativas.

Análise da Alternativa Correta (C):

O enunciado descreve um cenário em que um sistema financeiro requer flexibilidade e escalabilidade na criação de objetos e no tratamento de requisições. Para isso, os padrões de projeto Factory Method e Chain of Responsibility são ideais.

  • Factory Method: Este padrão é utilizado para criar instâncias de objetos, permitindo que subclasses decidam qual classe instanciar. Isso é adequado para um sistema que precisa processar diferentes tipos de transações, pois cada tipo de transação pode exigir uma implementação específica.
  • Chain of Responsibility: Este padrão permite que um pedido passe por uma cadeia de handlers (processadores), cada um capaz de tratar ou passar a requisição adiante. Isso garante que o sistema possa manejar requisições de transações de forma flexível e extensível, exatamente como descrito no enunciado.

Análise das Alternativas Incorretas:

A - Abstract Factory e Command: Embora o Abstract Factory seja útil para criar famílias de objetos relacionados, o Command é utilizado para encapsular uma solicitação como um objeto, o que não se alinha perfeitamente com a descrição do problema relacionada ao tratamento flexível de uma série de requisições.

B - Builder e Strategy: O Builder é ideal para construir objetos complexos passo a passo, o que não se encaixa com a necessidade de criação de instâncias de vários tipos de transações. O Strategy define uma família de algoritmos, permitindo que cada um seja selecionado no momento adequado, mas não resolve o problema descrito de maneira adequada.

D - Prototype e Mediator: O Prototype é usado para criar novos objetos copiando um protótipo existente, e o Mediator centraliza a comunicação entre objetos, o que não corresponde à estrutura requerida para a criação de objetos e tratamento de requisições.

E - Singleton e Observer: O Singleton garante que uma classe tenha somente uma instância, e o Observer define uma dependência um-para-muitos entre objetos. Nenhum dos dois resolve diretamente a necessidade de uma criação flexível de objetos e o tratamento extensível de requisições.

Considerações finais:

Compreender os padrões de projeto e suas aplicações é essencial para desenvolver sistemas robustos e flexíveis. Saber identificar qual padrão usar em cada situação é uma habilidade valiosa para qualquer desenvolvedor.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo