Um time de desenvolvimento está trabalhando em um sistema f...
Considerando-se o contexto descrito, quais são os dois padrões de projeto escolhidos?
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