Você, como analista de informática da Sanepar, está desenvo...

Próximas questões
Com base no mesmo assunto
Q3451107 Engenharia de Software
Você, como analista de informática da Sanepar, está desenvolvendo um sistema que gerencia o acesso a dados confidenciais, como consumo de água dos clientes. Para garantir que apenas usuários autorizados acessem esses dados, você precisa utilizar um padrão de projeto estrutural que controle esse acesso.

Diante dessa incumbência, qual padrão de projeto estrutural você deve usar para agir como um substituto ou representante dos objetos reais, garantindo o controle de acesso?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - Proxy

Tema central da questão:

A questão aborda Padrões de Projeto Estruturais, mais especificamente o controle de acesso a dados sensíveis, assunto muito cobrado em concursos de Engenharia de Software. Saber identificar o padrão correto é fundamental para garantir a segurança e a organização dos sistemas.

Resumo teórico:

Segundo a Gang of Four (GoF), padrões estruturais tratam da composição de classes e objetos para formar estruturas maiores. O padrão Proxy (representante) permite criar um objeto intermediário que controla o acesso a outro objeto, podendo validar permissões antes de acessar dados sensíveis. Exemplos de uso incluem sistemas que exigem autenticação ou autorização de usuários.

Fonte: GOF – “Design Patterns: Elements of Reusable Object-Oriented Software”.

Justificativa da alternativa correta:

A alternativa E - Proxy é correta pois esse padrão é utilizado exatamente para agir como substituto ou representante de objetos, controlando o acesso e protegendo dados sensíveis. No exemplo do enunciado, o Proxy poderia validar se o usuário tem permissão para consultar o consumo de água antes de liberar a informação.

Análise das alternativas incorretas:

A - Iterator: Permite percorrer elementos de uma coleção sem expor sua representação interna. Não tem relação com controle de acesso.

B - Observer: Define uma dependência entre objetos para que quando um mudar de estado, os outros sejam notificados. É usado em notificações/assinaturas, não para acesso ou segurança.

C - Interpreter: Interpreta sentenças de uma linguagem, útil em compiladores e processadores de expressões; não controla acesso a dados.

D - Command: Encapsula uma solicitação como um objeto, permitindo parametrização de ações. Relaciona-se à execução de comandos, não ao bloqueio de acesso.

Estratégias para interpretação:

Fique atento a termos-chave como “controle de acesso” e “substituto ou representante dos objetos reais”. Eles direcionam diretamente ao padrão Proxy. Evite cair em pegadinhas focando no propósito de cada padrão, não apenas em palavras conhecidas.

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

O padrão de projeto estrutural que atua como substituto ou representante de objetos reais para controlar o acesso é o Proxy. Ele é ideal para situações que exigem controle de acesso, como no caso de dados confidenciais.

Resposta: E

A. Iterator

  • Categoria: Comportamental.
  • Objetivo: Fornecer uma maneira de acessar sequencialmente os elementos de um objeto agregado sem expor sua representação interna.
  • Erro: Não tem nenhuma relação com controle de acesso ou substituição de objetos. É usado para percorrer coleções (listas, pilhas, árvores, etc.).

B. Observer

  • Categoria: Comportamental.
  • Objetivo: Definir uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente.
  • Erro: Foca em notificação de mudanças, não em controle de quem pode acessar um objeto. Não age como intermediário.

C. Interpreter

  • Categoria: Comportamental.
  • Objetivo: Dada uma linguagem, define uma representação para sua gramática e um interpretador que usa essa representação para interpretar sentenças nessa linguagem.
  • Erro: Voltado para interpretação de expressões/linguagens, não para gerenciamento de acesso a objetos.

D. Command

  • Categoria: Comportamental.
  • Objetivo: Encapsular uma solicitação como um objeto, permitindo parametrizar clientes com diferentes pedidos, enfileirar ou fazer log de solicitações e suportar operações que podem ser desfeitas.
  • Erro: Trata da parametrização e execução de ações, não da intermediação ou controle de acesso a objetos.

Clique para visualizar este comentário

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