Questão de Engenharia de Software — Padrões de Projeto (Engenharia de Software) — CESPE / CEBRASPE 2025
Engenharia de Software›Padrões de Projeto (Engenharia de Software)
Código
ce417750
Banca
CESPE / CEBRASPE
Órgão
PC DF
Ano
2025
Cargo
GAAPC ( )
A respeito do padrão arquitetural MVVM (Model, View e View-Model) e dos padrões de projetos GoF, julgue o item a seguir.
O padrão Facade simplifica a interação com sistemas internos ao consolidar várias funcionalidades em uma única interface, proporcionando um acesso simplificado aos subsistemas sem alterar sua estrutura ou autonomia.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
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 Facade (GoF)
Gabarito: Errado (E). A afirmativa está incorreta porque, embora o padrão Facade realmente forneça uma interface unificada e simplificada para um sistema complexo, ele não consolida várias funcionalidades em uma única interface — ele apenas cria uma fachada que delega chamadas aos subsistemas, que permanecem intactos e acessíveis. A descrição apresentada mistura o conceito de Facade com o de um mediador ou agregador, que de fato consolida funcionalidades. A definição clássica do GoF (Gamma et al., 1995) é: "fornecer uma interface unificada para um conjunto de interfaces de um subsistema", sem alterar a estrutura ou autonomia dos subsistemas.
O padrão Facade é um dos 23 padrões de projeto do catálogo GoF, classificado como padrão estrutural. Seu objetivo é reduzir o acoplamento entre o cliente e os componentes internos de um sistema complexo, oferecendo um ponto único de entrada (a fachada) que delega as chamadas para os subsistemas apropriados. A fachada não encapsula os subsistemas — ela apenas os organiza e simplifica o acesso a eles. Isso significa que os subsistemas permanecem acessíveis diretamente, caso necessário, e mantêm sua autonomia e estrutura original.
Na prática, imagine um sistema de reserva de viagens que envolve subsistemas de passagens aéreas, hotéis e aluguel de carros. Sem o Facade, o cliente precisaria conhecer e interagir com cada subsistema individualmente, o que aumenta o acoplamento e a complexidade. Com o Facade, o cliente chama um único método (por exemplo, reservarViagem()), e a fachada orquestra as chamadas internas aos três subsistemas. O cliente não precisa saber como cada subsistema funciona, mas eles continuam existindo e operando de forma independente.
A distinção crucial está no verbo: o Facade simplifica o acesso, mas não consolida as funcionalidades. Consolidar implicaria fundir ou integrar as funcionalidades em uma única entidade, o que alteraria a estrutura dos subsistemas. O Facade, ao contrário, preserva a autonomia de cada subsistema, apenas escondendo sua complexidade atrás de uma interface mais amigável. Essa é a pegadinha da questão: a banca troca o conceito de "simplificar" por "consolidar", induzindo o candidato a aceitar uma definição imprecisa.
NÃO CAIA NESSA!
A banca troca o verbo "simplificar" por "consolidar". O Facade simplifica o acesso a um sistema complexo, mas não consolida funcionalidades — consolidar implicaria fundir os subsistemas, o que violaria sua autonomia. Fique atento a essa troca sutil de termos, que é uma armadilha clássica em questões sobre padrões de projeto.
A afirmativa está errada porque o padrão Facade não "consolida várias funcionalidades em uma única interface". O que ele faz é fornecer uma interface unificada e simplificada para um conjunto de interfaces de um subsistema, delegando as chamadas aos subsistemas, que permanecem intactos e autônomos. A palavra "consolidar" sugere uma fusão ou integração das funcionalidades, o que não ocorre no Facade — ele apenas esconde a complexidade, sem alterar a estrutura interna dos subsistemas. O erro está na troca do verbo "simplificar" por "consolidar", que muda o sentido da definição.
PEGA ESSA DICA!
Para diferenciar o Facade de outros padrões estruturais, lembre-se: o Facade simplifica o acesso (interface única), o Adapter converte interfaces incompatíveis, e o Decorator adiciona funcionalidades dinamicamente. Se a questão falar em "consolidar" ou "fundir" funcionalidades, desconfie — isso não é Facade.