Qual é o Padrão de Projeto que fornece uma maneira de acess...

Próximas questões
Com base no mesmo assunto
Q737812 Arquitetura de Software
Qual é o Padrão de Projeto que fornece uma maneira de acessar seqüencialmente os elementos de um objeto agregado sem expor sua representação subjacente?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é: B - Iterator.

O padrão de projeto Iterator é um dos padrões de comportamento do catálogo GoF (Gang of Four) e tem como objetivo principal fornecer uma maneira de acessar sequencialmente os elementos de um objeto agregado, como listas ou coleções, sem expor a sua representação subjacente. Ele permite que o cliente interaja com a coleção sem precisar entender como ela é implementada, garantindo assim o princípio do encapsulamento.

Vamos agora discutir as alternativas incorretas:

  • A - Flyweight: Este padrão é utilizado para minimizar o uso de memória ao compartilhar o máximo de dados possível com objetos semelhantes, frequentemente usados em sistemas que precisam lidar com grandes quantidades de objetos. Ele não está relacionado com a iteração sobre coleções.
  • C - State: O padrão State permite que um objeto altere seu comportamento quando o seu estado interno muda. Ele não trata da iteração sobre uma coleção, mas sim de como um objeto muda de comportamento dependendo de seu estado.
  • D - Strategy: Este padrão é usado para definir uma família de algoritmos, encapsulá-los e tornar intercambiáveis, permitindo que o algoritmo varie independentemente dos clientes que o utilizam. Novamente, não está relacionado com a iteração sobre coleções.
  • E - Visitor: O padrão Visitor é utilizado para separar um algoritmo da estrutura de objeto sobre o qual opera. Ele permite que novas operações sejam adicionadas a estruturas de objetos sem modificar as estruturas. Não é usado para acessar elementos de uma coleção de forma sequencial.

Para resolver esta questão, é essencial ter um entendimento claro dos padrões de projeto e suas aplicações específicas, uma vez que cada um atende a um problema ou situação específica de design de software.

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

Comentários

Veja os comentários dos nossos alunos

FLYWEIGHT - “Usar compartilhamento para suportar eficientemente grandes quantidades de objetos de granularidade fina.” Utilizado quando uma instância de uma classe pode ser usada para fornecer muitas instâncias.

 

STATE: “Permite a um objeto alterar seu comportamento quando o seu estado interno muda. O objeto parecerá ter mudado sua classe.” Usar quando o comportamento de um objeto depende do seu estado, e ele deve mudar este comportamento em tempo de execução de acordo com este estado. Um conjunto de comportamentos encapsulados em objetos de estado a qualquer momento.

 

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.” (comando condicional switch, desacoplar). Faz uso da composição. O cliente geralmente especifica o objeto de estratégia com o qual o contexto é composto.

 

VISITOR - “Representar uma operação a ser executada nos elementos de uma estrutura de objetos. Visitor permite definir uma nova operação sem mudar as classes dos elementos sobre os quais opera.”

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo