Pular para o conteúdo principal

Questão de Engenharia de Software — Padrões de Projeto (Engenharia de Software) — INSTITUTO AOCP 2024

Engenharia de SoftwarePadrões de Projeto (Engenharia de Software)
Código
qa631576
Banca
INSTITUTO AOCP
Órgão
DPE MS
Ano
2024
Cargo
Ana Def ( )
Patrícia é analista de Desenvolvimento de Sistemas e está utilizando conceitos do Design Patterns para a implementação de um novo sistema de controle de acesso para a Defensoria Pública do Estado de Mato Grosso do Sul. A profissional pretende utilizar um padrão de projeto estrutural que fornece uma interface mais simplificada para um conjunto de classes complexas. Esse padrão é o
  1. ADecorator.
  2. BAdapter.
  3. CFlyweight.
  4. DMediator.
  5. EFacade.
Revelar gabarito e comentário

GabaritoE — Facade.

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ões de Projeto Estruturais: Facade

Gabarito: letra E. O padrão Facade (Fachada) é o padrão estrutural que fornece uma interface unificada e simplificada para um conjunto de interfaces de um subsistema, ocultando sua complexidade. O enunciado descreve exatamente essa intenção: "fornece uma interface mais simplificada para um conjunto de classes complexas".

Os padrões de projeto (Design Patterns) são soluções gerais e reutilizáveis para problemas recorrentes no desenvolvimento de software. Eles são classificados em três famílias principais: criacionais (lidam com a criação de objetos), estruturais (lidam com a composição de classes e objetos) e comportamentais (lidam com a comunicação e distribuição de responsabilidades entre objetos). O padrão Facade pertence à família dos estruturais, pois organiza a estrutura de um sistema para simplificar seu uso.

O objetivo central do Facade é fornecer um ponto único de entrada para um subsistema complexo, reduzindo o acoplamento entre o cliente e as classes internas. Imagine um sistema de controle de acesso com módulos de autenticação, autorização, auditoria e notificação. Em vez de o cliente interagir diretamente com cada um desses módulos, o Facade oferece um método único, como acessarSistema(usuario, senha), que internamente orquestra todas as chamadas necessárias. Isso simplifica o uso, mas não esconde as funcionalidades internas — o cliente ainda pode acessá-las diretamente se precisar.

A distinção crucial que a banca explora é entre Facade e Adapter. Enquanto o Facade cria uma interface nova e simplificada para um subsistema, o Adapter converte a interface de uma classe existente em outra interface que o cliente espera, permitindo que classes incompatíveis trabalhem juntas. O Facade não altera a interface original; ele apenas a encapsula. Outro padrão que confunde é o Mediator, mas este é comportamental e centraliza a comunicação entre objetos, enquanto o Facade é estrutural e simplifica o acesso a um subsistema.

A pegadinha desta questão está em reconhecer a palavra-chave "interface mais simplificada" como a assinatura do Facade. O candidato que confunde os padrões pode cair em Adapter (que também mexe com interfaces) ou Mediator (que também envolve comunicação). Guarde a fronteira: Facade simplifica o acesso a um conjunto de classes; Adapter converte uma interface para outra; Mediator centraliza a comunicação entre objetos.

Padrões de projeto
  • 1Criacionais
    • Criação de objetos
  • 2Estruturais
    • Composição de classes/objetos
    • Facade
      • Interface simplificada
      • Oculta complexidade
      • Ponto único de acesso
    • Adapter
      • Converte interface
      • Compatibiliza classes
    • Decorator
      • Adiciona responsabilidades
    • Flyweight
      • Compartilha objetos
      • Reduz uso de memória
  • 3Comportamentais
    • Comunicação entre objetos
    • Mediator
      • Centraliza comunicação
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O Decorator é um padrão estrutural que agrega responsabilidades adicionais a um objeto dinamicamente, de forma transparente. Ele envolve o objeto original com uma camada que adiciona comportamento, sem alterar sua interface. O enunciado fala em simplificar o acesso a um conjunto de classes, não em adicionar funcionalidades a um objeto específico.

Alternativa B — ❌ Incorreta

O Adapter converte a interface de uma classe em outra interface que o cliente espera, permitindo que classes com interfaces incompatíveis trabalhem juntas. Ele resolve um problema de compatibilidade entre interfaces, enquanto o Facade resolve um problema de complexidade, fornecendo uma interface simplificada. A palavra-chave "simplificada" no enunciado aponta para o Facade, não para o Adapter.

Alternativa C — ❌ Incorreta

O Flyweight é um padrão estrutural que visa reduzir o uso de memória compartilhando objetos comuns entre múltiplos contextos. Ele é usado quando há muitos objetos semelhantes, armazenando o estado intrínseco (compartilhado) e extrínseco (contextual) separadamente. Não tem relação com simplificar a interface de um conjunto de classes.

Alternativa D — ❌ Incorreta

O Mediator é um padrão comportamental que centraliza a comunicação entre objetos, evitando que eles se referenciem explicitamente uns aos outros. Ele reduz o acoplamento entre objetos, mas não fornece uma interface simplificada para um conjunto de classes. Além disso, pertence a outra família de padrões, o que já o elimina.

Alternativa E — ✅ Correta ⟵ GABARITO

O Facade fornece uma interface unificada e simplificada para um conjunto de interfaces de um subsistema, ocultando sua complexidade. É exatamente o que o enunciado descreve: "fornece uma interface mais simplificada para um conjunto de classes complexas". Ele é um padrão estrutural que reduz o acoplamento entre o cliente e o subsistema, facilitando o uso e a manutenção.

PEGA ESSA DICA!

Para identificar o Facade na prova, procure por palavras como "interface simplificada", "ponto único de acesso" ou "ocultar complexidade". Se a questão falar em "converter interface" ou "compatibilizar", é Adapter; se falar em "adicionar responsabilidades", é Decorator; se falar em "centralizar comunicação", é Mediator.

Gabarito: letra E

Link permanente: /questoes/qa631576