Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — CESPE / CEBRASPE 2024
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
ce180658
Banca
CESPE / CEBRASPE
Órgão
Prefeitura de Cachoeiro de Itapemirim - ES
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas
Julgue o item seguinte, que tratam de padrões de projeto e dos protocolos para Web services, padrões e tecnologias relacionadas.O padrão de projetos Iterator fornece aos clientes vários métodos simples de acesso aos elementos da coleção, protegendo a coleção contra ações descuidadas ou maliciosas passíveis de ocorrência caso seja permitido o acesso direto à coleção.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoC — Certo
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Padrão Iterator (GoF comportamental)
✅ CERTO. A afirmação descreve corretamente o propósito do padrão de projeto Iterator. Ele fornece uma interface unificada para percorrer os elementos de uma coleção sem expor sua estrutura interna, protegendo assim a coleção contra acesso ou modificação indevida por parte do cliente.
Fundamentação
O Iterator é um dos padrões comportamentais do catálogo GoF (Gang of Four). Sua intenção é "fornecer um modo de acessar sequencialmente os elementos de um objeto agregado sem expor sua representação subjacente". Ao encapsular a lógica de iteração, o padrão:
Oferece métodos simples (next(), hasNext(), currentItem(), etc.) para que o cliente navegue pela coleção.
Impede que o cliente manipule diretamente a estrutura interna da coleção (ex.: índices, listas encadeadas), reduzindo riscos de corrupção ou uso inadequado.
Permite que a coleção seja alterada (dentro de limites) sem impactar o código cliente, desde que o iterador seja consistente.
Portanto, a afirmação está em linha com a definição clássica do padrão: proteger a coleção e simplificar o acesso aos seus elementos.
SE LIGUE NESSA!
O Iterator é frequentemente implementado com fail-fast ou fail-safe para lidar com modificações concorrentes, reforçando a proteção mencionada.
Aspecto
Descrição no Padrão Iterator
Benefício para a Coleção
Intenção
Acessar sequencialmente elementos de um agregado sem expor sua estrutura interna
Protege a representação subjacente (ex.: lista, árvore)
Interface fornecida
Métodos simples como next(), hasNext(), currentItem()
Simplifica o acesso para o cliente
Proteção contra ações indevidas
Impede manipulação direta de índices ou referências internas
Reduz riscos de corrupção ou uso malicioso da coleção
Impacto de alterações na coleção
A lógica de iteração fica encapsulada no iterador
Permite modificar a coleção sem afetar o código cliente