Questão nº 42
Questão de Tecnologia da Informação · FGV TJ-SE Servidor 2023 (nº 42)
Paulo implementou um sistema na plataforma Java EE, onde foi adotada a arquitetura MVC, colocando Servlets e JSPs na camada View, entidades JPA na Model e Session Beans na Controller.
Como os Session Beans são os únicos componentes que instanciam gestores de persistência do JPA, Paulo segue o padrão de desenvolvimento:
- ADecorator;
- BFacade; (alternativa correta)
- CTemplate Method;
- DAbstract Factory;
- EState.
Resposta comentada
Gabarito Alternativa B
Um Facade é como um porteiro para um prédio complexo: ele oferece uma interface simples para acessar os serviços internos, escondendo todos os detalhes e a complexidade de como esses serviços funcionam por dentro. No caso, os Session Beans atuam como esse porteiro para o sistema de persistência JPA, centralizando e simplificando o acesso a ele.
(A) Incorreta: O padrão Decorator adiciona novas responsabilidades a um objeto existente dinamicamente, "embrulhando-o". Aqui, os Session Beans não estão adicionando funcionalidades a um gestor de persistência existente, mas sim fornecendo uma interface simplificada para todo o subsistema de persistência. A armadilha é confundir "centralizar acesso" com "adicionar funcionalidade a um objeto".
(B) Correta: O padrão Facade fornece uma interface unificada e simplificada para um conjunto de interfaces em um subsistema. Ao fazer com que os Session Beans sejam os únicos a instanciar e gerenciar os gestores de persistência do JPA, eles atuam como uma fachada para o complexo subsistema de persistência, escondendo os detalhes de implementação do JPA das outras camadas da aplicação.
(C) Incorreta: O padrão Template Method define o esqueleto de um algoritmo em uma operação, delegando algumas etapas para subclasses. Não há indicação de um algoritmo com passos a serem implementados por subclasses na descrição.
(D) Incorreta: O padrão Abstract Factory fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. O foco aqui não é a criação de famílias de objetos, mas sim a centralização e simplificação do acesso a um subsistema.
(E) Incorreta: O padrão State permite que um objeto altere seu comportamento quando seu estado interno muda. A descrição do problema não envolve a mudança de comportamento de um objeto baseada em seu estado.
Fonte: FGV TJ-SE Servidor 2023 Técnico Judiciário - Programação de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.