Uma programadora precisa mudar a implementação chamada de um...

Próximas questões
Com base no mesmo assunto
Q873495 Arquitetura de Software
Uma programadora precisa mudar a implementação chamada de uma função em tempo de execução dependendo da entrada de dados. Um dos requisitos importantes é ocultar do usuário desta função a exposição das estruturas de dados complexas, específicas do algoritmo. Entre os conhecidos padrões de Projeto de Software Gang of Four (GoF,1994), qual é o indicado?
Alternativas

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