Prévia do material em texto
Aqui está um gabarito com questões recorrentes em provas de "Padrões de Projeto com Java", organizadas por categoria para facilitar o estudo. 🏗 Padrões de Criação (Creational) 1. A classe java.awt.Toolkit é um exemplo da aplicação de qual padrão de projeto? Resposta: Singleton. Justificativa: O Toolkit fornece uma instância única e global para acessar recursos dependentes da plataforma (como o toolkit gráfico), característica central do padrão Singleton . 2. Analise o propósito: "Permitir que um único processo de construção possa ser utilizado para construir diferentes representações de um objeto complexo ao implementar a representação do objeto e o processo da sua construção em classes separadas". Qual o padrão? Resposta: Builder. Justificativa: O padrão Builder separa a construção de um objeto complexo da sua representação, permitindo que o mesmo processo de construção crie diferentes representações . 🧱 Padrões Estruturais (Structural) 3. Sobre o padrão Facade, qual afirmativa está correta? Resposta: Com a aplicação do padrão Facade, os módulos clientes podem utilizar um componente ou subsistema por meio de uma interface de alto nível, reduzindo o acoplamento . Justificativa: O Facade fornece uma interface unificada e simplificada para um conjunto de interfaces em um subsistema, escondendo a complexidade e desacoplando os clientes das partes internas . 4. Qual padrão utiliza uma fábrica de objetos de modo a gerenciar a instanciação e compartilhamento de objetos utilizados em larga escala? Resposta: Flyweight. Justificativa: O Flyweight é usado para suportar grandes quantidades de objetos de forma eficiente, compartilhando o estado intrínseco comum entre eles (como caracteres em um documento) . 5. No código, qual padrão está sendo utilizado para "ler" um objeto e adicionar responsabilidades dinamicamente a ele? A R M A R K W A A T E R M A R K W A T E R M A W A T E R M A R K W A T E R M A R K W R K W A T E R M A R K W A T E R M A R K W A T E R M R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W Resposta: Decorator. Justificativa: O Decorator permite adicionar funcionalidades a um objeto dinamicamente, envolvendo-o em um "wrapper" que estende seu comportamento sem alterar a classe original . 6. Um colega precisa encapsular a complexidade da lógica de negócio para que a interface com o usuário não precise fazer diversas chamadas diretas aos objetos. Qual padrão recomendar? Resposta: Facade. Justificativa: O Facade cria uma "fachada" que simplifica a interação com um subsistema complexo, reduzindo o acoplamento entre a UI e a lógica de negócio . 🔄 Padrões Comportamentais (Behavioral) 7. Os iteradores de coleção em Java (obtidos a partir da interface Collection ) são implementados com a aplicação de qual padrão de projeto? Resposta: Iterator. Justificativa: O padrão Iterator fornece uma maneira de acessar sequencialmente os elementos de uma coleção sem expor sua representação interna. O iterator() é um Factory Method que cria o iterador apropriado . 8. Sobre o padrão Observer, qual afirmativa está correta? Resposta: É frequentemente utilizado na implementação de interfaces gráficas complexas, onde uma fonte de informação precisa estar sincronizada com diferentes visualizações apresentadas simultaneamente para o usuário . Justificativa: O Observer define uma dependência um-para-muitos, de modo que quando um objeto (Subject) muda de estado, todos os seus dependentes (Observers) são notificados e atualizados automaticamente . 9. Uma expressão matemática é representada por uma árvore. Em vez de definir em cada nó várias operações, o padrão sugere concentrar o processamento em uma classe que implementa um método para cada tipo de nó (número, operador, etc.). Qual o padrão? Resposta: Visitor. Justificativa: O Visitor permite definir novas operações sobre uma estrutura de objetos sem alterar as classes dos elementos. A estrutura de árvore (nós) "recebe" um visitante que executa a operação específica . 10. Você precisa capturar e salvar o estado de um objeto sem quebrar seu encapsulamento, para poder restaurá-lo posteriormente (ex: desfazer). Qual o padrão? A R M A R K W A A T E R M A R K W A T E R M A W A T E R M A R K W A T E R M A R K W R K W A T E R M A R K W A T E R M A R K W A T E R M R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W Resposta: Memento. Justificativa: O Memento captura e externaliza o estado interno de um objeto, permitindo que ele seja restaurado a esse estado mais tarde, sem violar o encapsulamento . 🧠 Conceitos Gerais e Comparações 11. Qual é a diferença entre os padrões Adapter e Proxy? Resposta: O Adapter converte a interface de uma classe em outra interface esperada pelo cliente, permitindo que classes incompatíveis trabalhem juntas. O Proxy fornece um substituto ou representante de outro objeto para controlar o acesso a ele (ex: proxy virtual para carregamento tardio, proxy de proteção para controle de permissões) . 12. Qual é a diferença entre os padrões Adapter e Decorator? Resposta: O Adapter muda a interface de um objeto para torná-lo compatível com outro. O Decorator mantém a mesma interface, mas adiciona responsabilidades (comportamento) ao objeto dinamicamente . 13. Em relação ao acoplamento, qual é o objetivo das boas práticas de projeto (design) de software? Resposta: Resultar em um código fracamente acoplado e altamente coeso . Justificativa: Baixo acoplamento reduz a dependência entre módulos, facilitando a manutenção. Alta coesão significa que os elementos dentro de um módulo estão fortemente relacionados, o que é desejável. 14. O padrão Observer é um exemplo de qual categoria de padrões (segundo o propósito)? Resposta: Padrão Comportamental. Justificativa: Ele lida com a comunicação e interação entre objetos, especificamente como um objeto notifica outros sobre mudanças de estado . 15. O padrão Facade é um exemplo de qual categoria de padrões (segundo o propósito)? Resposta: Padrão Estrutural. Justificativa: Ele lida com a composição de classes e objetos para formar estruturas maiores, simplificando a interface de um subsistema . Espero que este gabarito ajude nos seus estudos. Se precisar de mais alguma questão ou explicação sobre um padrão específico, é só avisar. A R M A R K W A A T E R M A R K W A T E R M A W A T E R M A R K W A T E R M A R K W R K W A T E R M A R K W A T E R M A R K W A T E R M R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W T E R M A R K W A T E R M A R K W A T E R M AR K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W