Assinale a alternativa que completa CORRETA e RESPECTIVAMENT...
O padrão de projeto _________ assegura que uma classe gere apenas uma instância e forneça acesso a essa instância.
O padrão de projeto _________ organiza objetos em estruturas de árvore para representar hierarquias todo-parte. Esse padrão permite que clientes tratem objetos individuais e coleções de objetos de maneira uniforme.
O padrão de projeto _________ acrescenta responsabilidades adicionais a um objeto dinamicamente. Esse padrão fornece uma alternativa flexível para a extensão de funcionalidade em relação à solução por meio de herança.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - Singleton – Composite – Decorator
A questão em questão aborda o tema dos Padrões de Projeto, que são soluções generalistas para problemas recorrentes no desenvolvimento de software. Os padrões de projeto ajudam a estruturar o código de maneira eficiente, promovendo a reutilização e a flexibilidade do software. Vamos ver por que a alternativa D é a correta:
O primeiro padrão mencionado é o Singleton. Este padrão garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global a essa instância. Isso é útil quando precisamos que um objeto seja compartilhado por várias partes do sistema, sem criar múltiplas instâncias que poderiam causar inconsistências.
O segundo padrão é o Composite. Este padrão permite compor objetos em estruturas de árvore para representar hierarquias todo-parte. Com ele, podemos tratar objetos simples e compostos de maneira uniforme, o que simplifica o trabalho com estruturas complexas.
O terceiro padrão é o Decorator. Este padrão permite adicionar responsabilidades adicionais a um objeto de maneira dinâmica, sem alterar sua estrutura interna. Isso proporciona uma alternativa flexível à herança, quando queremos estender o comportamento de objetos sem modificar sua classe.
Entendendo como cada um desses padrões funciona e o problema que eles resolvem, fica claro que a alternativa D é a que corretamente preenche as lacunas do enunciado, relacionando cada padrão de projeto com a sua descrição correspondente.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
d-
O padrão de projeto singleton assegura que uma classe gere apenas uma instância e forneça acesso a essa instância.
O padrão de projeto composite organiza objetos em estruturas de árvore para representar hierarquias todo-parte. Esse padrão permite que clientes tratem objetos individuais e coleções de objetos de maneira uniforme.
O padrão de projeto decorator acrescenta responsabilidades adicionais a um objeto dinamicamente. Esse padrão fornece uma alternativa flexível para a extensão de funcionalidade em relação à solução por meio de herança.
Padrões de Criação:
Singleton: garante que apenas uma instância de uma classe exista em todo o sistema.
Factory Method: define uma interface para criar objetos, mas permite que subclasses alterem o tipo de objeto que é criado.
Builder: separa a construção de um objeto complexo em várias etapas, permitindo que diferentes representações do objeto sejam criadas.
Abstract Factory: fornece uma interface para criar famílias de objetos relacionados, sem especificar suas classes concretas.
Prototype: especifica o tipo de um objeto a ser criado usando um protótipo e cria novos objetos clonando o protótipo.
Padrões Estruturais:
Adapter: converte a interface de uma classe em outra interface que o cliente espera.
Decorator: adiciona funcionalidades a um objeto dinamicamente, sem alterar sua estrutura.
Proxy: fornece um objeto substituto para outro objeto para controlar o acesso a ele.
Facade: fornece uma interface unificada para um conjunto de interfaces em um subsistema.
Composite: compõe objetos em estruturas de árvore para representar hierarquias de objetos de forma que clientes possam tratá-los de forma uniforme.
Bridge: desacopla uma abstração de sua implementação, permitindo que ambas variem independentemente.
Padrões Comportamentais:
Command: encapsula um pedido como um objeto, permitindo que você parametrize clientes com diferentes pedidos e defina filas de pedidos ou logs de comandos.
Observer: define uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente.
Strategy: define uma família de algoritmos, encapsula cada um deles e torna-os intercambiáveis. Permite que o cliente escolha o algoritmo que deseja usar em tempo de execução.
Template Method: define o esqueleto de um algoritmo em uma operação, deferindo algumas etapas para subclasses. Permite que subclasses redefinam certas etapas do algoritmo sem alterar sua estrutura geral.
Chain of Responsibility: evita o acoplamento do remetente de um pedido ao seu receptor, passando o pedido por uma cadeia de handlers. Cada handler decide se deve processar o pedido ou passá-lo para o próximo handler na cadeia.
State: permite que um objeto altere seu comportamento quando seu estado interno muda. O objeto pode parecer mudar de classe.
Iterator: fornece um modo para acessar os elementos de um objeto agregado sequencialmente sem expor sua representação subjacente.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo