NEW
Font size
WorksheetsPadrões de Projeto Estruturais - parte 1
Total questions: 13
Worksheet time: 20mins
Qual é o propósito principal do padrão de projeto Adapter?
Separar a abstração de sua implementação para que ambas possam evoluir independentemente.
Adicionar novas funcionalidades a um objeto dinamicamente sem alterar sua estrutura.
Compor objetos em estruturas de árvore para representar hierarquias parte-todo.
Permitir que objetos com interfaces incompatíveis colaborem entre si.
Qual problema fundamental o padrão de projeto Bridge visa resolver?
A necessidade de adaptar uma interface legada para funcionar com um sistema novo.
A impossibilidade de adicionar novas responsabilidades a um objeto após sua criação.
A complexidade de tratar objetos individuais e grupos de objetos da mesma forma.
A "explosão" de subclasses que ocorre ao estender uma hierarquia de classes em múltiplas dimensões independentes.
No padrão Bridge, como a "Abstração" se relaciona com a "Implementação"?
A Implementação contém uma referência à Abstração para notificá-la sobre mudanças de estado.
A Abstração herda diretamente da Implementação, combinando as duas hierarquias.
Abstração e Implementação devem compartilhar exatamente a mesma interface de métodos.
A Abstração contém uma referência a um objeto de Implementação e delega o trabalho para ele.
Qual é a principal vantagem do padrão Composite para o código cliente que interage com uma estrutura de árvore?
Permite que a estrutura da árvore seja modificada em tempo de execução sem afetar o cliente.
O cliente pode tratar objetos individuais (folhas) e composições de objetos (contêineres) de maneira uniforme.
Separa os algoritmos da estrutura de objetos em que operam.
Garante que apenas uma instância de cada objeto na árvore seja criada, economizando memória.
Na estrutura do padrão Composite, qual é a função de um objeto "Folha" (Leaf)?
É a interface que descreve as operações comuns para todos os elementos da árvore.
É um objeto que gerencia a adição e remoção de elementos filhos na estrutura.
É um elemento básico da árvore que não possui sub-elementos e realiza o trabalho real.
É um elemento que contém outros sub-elementos, como outras folhas ou contêineres.
Qual é o principal objetivo do padrão de projeto Decorator?
Garantir que uma classe tenha apenas uma instância e fornecer um ponto de acesso global a ela.
Mudar a interface de um objeto para que outro objeto possa entendê-lo.
Acoplar novos comportamentos a objetos, envolvendo-os em invólucros especiais.
Prover uma interface unificada para um conjunto de interfaces em um subsistema.
Qual é uma vantagem chave do uso do padrão Decorator em comparação com a herança para estender a funcionalidade de um objeto?
O Decorator é mais performático, pois não envolve a sobrecarga de criação de subclasses.
A herança é sempre estática, enquanto o Decorator permite adicionar ou remover responsabilidades em tempo de execução.
A herança não permite a reutilização de código, ao contrário do Decorator.
O Decorator simplifica a configuração inicial do código, tornando-o mais fácil de ler.
Qual padrão é mais adequado para uma situação em que você precisa usar uma classe existente, mas sua interface não é compatível com o resto do seu código?
Decorator
Adapter
Composite
Bridge
Embora estruturalmente semelhantes por usarem composição recursiva, qual é a principal diferença de propósito entre um Decorator e um Composite?
O Composite é usado para estruturas de árvore, enquanto o Decorator não pode ser usado em estruturas recursivas.
O Decorator altera a interface do objeto envolvido, e o Composite a mantém.
O Composite foca em desacoplar o cliente da complexidade da árvore, enquanto o Decorator acopla o cliente a múltiplas implementações.
O Decorator tem apenas um componente filho e adiciona responsabilidades, enquanto o Composite tem múltiplos filhos e soma seus resultados.
Qual é a principal diferença de intenção entre os padrões Bridge e Adapter?
O Bridge usa herança para conectar suas partes, e o Adapter usa composição.
O Bridge é projetado de antemão para evitar problemas, enquanto o Adapter é usado reativamente para consertar incompatibilidades em sistemas existentes.
O Bridge trabalha com um subsistema de objetos, e o Adapter trabalha com apenas um objeto.
O Bridge é usado para criar novas interfaces, enquanto o Adapter utiliza interfaces existentes.
Como o padrão Adapter se diferencia do padrão Decorator em relação à interface do objeto?
O Decorator simplifica a interface, e o Adapter a torna mais complexa.
Ambos alteram a interface do objeto original para uma completamente nova.
O Adapter mantém a interface, enquanto o Decorator a altera para uma incompatível.
O Adapter fornece uma interface diferente, enquanto a interface do Decorator permanece a mesma ou é estendida.
No exemplo de controles remotos e dispositivos do padrão Bridge, por que é vantajoso desenvolver as classes de controle remoto independentemente das classes de dispositivo?
Porque todos os dispositivos (TV, rádio) possuem exatamente os mesmos recursos.
Reduz o número total de classes no sistema, tornando-o mais simples.
Permite adicionar novos tipos de controles (ex: Avançado) ou novos dispositivos (ex: Rádio) sem precisar modificar a outra hierarquia.
Garante que um controle remoto só possa funcionar com um tipo específico de dispositivo, aumentando a segurança.
Como um objeto "Contêiner" (Composite) geralmente processa uma solicitação, como o cálculo do preço de um pedido?
Ele verifica o tipo de cada filho e usa uma lógica condicional (if/else) para chamar o método apropriado.
Ele delega a solicitação para apenas um de seus filhos, escolhido aleatoriamente.
Ele percorre recursivamente seus sub-elementos, delega a solicitação a cada um e depois soma os resultados.
Ele calcula seu próprio preço e ignora completamente seus filhos.
