Uma programadora precisa mudar a implementação chamada de um...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: B - Strategy
A questão aborda a utilização de Padrões de Projeto (Design Patterns), mais especificamente aqueles que pertencem ao catálogo do famoso livro "Gang of Four" (GoF, 1994). É necessário identificar o padrão de projeto que permite mudar a implementação de uma função em tempo de execução com base na entrada de dados, enquanto oculta estruturas de dados complexas do usuário.
Vamos agora entender por que a alternativa B - Strategy é a correta, e por que as outras opções estão incorretas.
Justificativa da Alternativa Correta:
Strategy é um padrão de projeto que permite que uma família de algoritmos seja definida e encapsulada em classes separadas, tornando esses algoritmos intercambiáveis. Isso significa que você pode selecionar o algoritmo a ser executado em tempo de execução, dependendo dos dados de entrada. Além disso, o padrão Strategy ajuda a ocultar a complexidade das estruturas de dados específicas, pois o usuário interage apenas com a interface ou a classe abstrata que define o comportamento do algoritmo.
Alternativas Incorretas:
A - Builder: O padrão Builder é utilizado para a construção de objetos complexos passo a passo. Ele é especialmente útil quando a criação de um objeto envolve muitos passos ou partes configuráveis. No entanto, ele não é adequado para selecionar e mudar algoritmos em tempo de execução, como a questão exige.
C - Façade: O padrão Façade fornece uma interface simples para um subsistema complexo, escondendo suas complexidades do usuário. Embora ajude a ocultar detalhes de implementação, ele não se destina a mudar a implementação de funções em tempo de execução com base na entrada de dados.
D - Template Method: O padrão Template Method define a estrutura de um algoritmo em uma operação, delegando alguns passos para subclasses. Este padrão é útil quando você deseja definir o esqueleto de um algoritmo, mas permite que subclasses implementem etapas específicas. No entanto, ele não permite a seleção dinâmica de algoritmos em tempo de execução.
Em resumo, a alternativa B - Strategy é a mais adequada, pois atende aos requisitos de mudança de implementação em tempo de execução e ocultação de complexidade das estruturas de dados específicas do algoritmo.
Espero que essa explicação tenha sido clara e útil para o seu entendimento! Caso tenha mais dúvidas, estarei à disposição para ajudar.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
a) Builder
Separar a construção de um objeto complexo de sua representação de modo que o mesmo processo de construção possa criar diferentes representações.
b) Strategy
Definir uma família de algoritmos, encapsular cada uma delas e torná-las intercambiáveis. Strategy permite que o algoritmo varie independentemente dos clientes que o utilizam
c) Façade
Fornecer uma interface unificada para um conjunto de interfaces em um subsistema. Facade define uma interface de nível mais alto que torna o subsistema mais fácil de ser usado.
d) Template Method
Definir o esqueleto de um algoritmo em uma operação, postergando alguns passos para as subclasses. Template Method permite que subclasses redefinam certos passo de um algoritmo sem mudar a estrutura do mesmo.
Recomendo esta fonte para estudos de Padrões de Projeto:
https://brizeno.wordpress.com/padroes/
Bons estudos.
Padrões e suas PALAVRAS CHAVE:
a) Builder (construção/objeto complexo)
b) Strategy (família de algoritmo/encapsulamento)
c) Façade (interface unificada)
d) Template Method (esqueleto de um algoritmo)
At.te
Foco na missão ❢
b-
define familia de algortimos, encapsulando-os e fazendo-os intercambiaveis.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo