Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — Quadrix 2023

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
qg027843
Banca
Quadrix
Órgão
CRM-MG
Ano
2023
Nível
Superior
Cargo
CRM - MG - Analista de Sistemas
No que se refere ao padrão de projeto Facade, assinale a alternativa correta.
  1. AEle é usado especificamente na programação estruturada de sistemas.
  2. BO padrão Facade não pode ser usado quando há o interesse em dividir seus subsistemas em camadas.
  3. CEle define uma interface comum para um conjunto de interfaces em um subsistema.
  4. DEsse padrão promove forte acoplamento entre os subsistemas e seus clientes.
  5. EEle evita que as aplicações acessem as subclasses diretamente.
Revelar gabarito e comentário

GabaritoC — Ele define uma interface comum para um conjunto de interfaces em um subsistema.

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 de Projeto Facade

Gabarito: letra C. O padrão Facade (Fachada) é um padrão estrutural do GoF que fornece uma interface unificada e simplificada para um conjunto de interfaces em um subsistema, tornando o subsistema mais fácil de usar. A alternativa C descreve exatamente essa definição.

A banca cobra o conceito clássico do Facade, conforme descrito no livro Design Patterns (GoF). É um padrão muito comum para simplificar sistemas complexos.

Alternativa

Descrição

Correta?

Justificativa

A

Usado especificamente na programação estruturada

Facade é um padrão orientado a objetos do GoF, não específico de programação estruturada

B

Não pode ser usado quando há interesse em dividir subsistemas em camadas

Facade é frequentemente usado exatamente para fornecer fachada por camada

C

Define uma interface comum para um conjunto de interfaces em um subsistema

Corresponde à definição do GoF: interface unificada que simplifica o uso do subsistema

D

Promove forte acoplamento entre subsistemas e clientes

Facade promove baixo acoplamento, pois clientes interagem apenas com a fachada

E

Evita que aplicações acessem subclasses diretamente

Facade evita acesso direto a subsistemas (conjuntos de classes), não especificamente a subclasses

Alternativa A — ❌ Incorreta

Afirma que o Facade é usado especificamente na programação estruturada. Na verdade, o Facade é um padrão orientado a objetos, parte do catálogo GoF, e pode ser aplicado em qualquer paradigma que suporte encapsulamento e interfaces, mas não é "específico" da programação estruturada. O erro é associá-lo a um paradigma no qual ele não se enquadra como padrão de projeto.

Alternativa B — ❌ Incorreta

Diz que "não pode ser usado quando há interesse em dividir seus subsistemas em camadas". Na prática, o Facade é frequentemente utilizado exatamente para fornecer uma fachada para cada camada, simplificando a comunicação entre elas. É um padrão útil em sistemas em camadas.

Alternativa C — ✅ Correta ⟵ GABARITO

Define corretamente o padrão: "Ele define uma interface comum para um conjunto de interfaces em um subsistema." Isso corresponde à definição do GoF: "Fornece uma interface unificada para um conjunto de interfaces em um subsistema. O Facade define uma interface de nível mais alto que torna o subsistema mais fácil de usar." Portanto, é a alternativa correta.

Alternativa D — ❌ Incorreta

Afirma que o padrão promove "forte acoplamento". Na verdade, o Facade promove baixo acoplamento, pois os clientes interagem apenas com a fachada, não com os subsistemas diretamente. Isso reduz as dependências e torna o sistema mais flexível.

Alternativa E — ❌ Incorreta

Diz que "evita que as aplicações acessem as subclasses diretamente". O Facade não lida com subclasses, mas com subsistemas (conjuntos de classes). Ele evita que os clientes acessem as classes do subsistema diretamente, mas não especificamente subclasses. O termo correto seria "subsistemas", não "subclasses".

Gabarito: letra C.

Link permanente: /questoes/qg027843