Padrões de projeto são descrições de soluções prontas para ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a Alternativa B: estrutural, estender funcionalidades de forma dinâmica.
Os padrões de projeto (Design Patterns) são soluções reutilizáveis para problemas comuns encontrados no desenvolvimento de software. Eles são amplamente utilizados para melhorar a manutenção e a estrutura do código, facilitando a comunicação entre desenvolvedores.
O padrão Decorator pertence à categoria dos padrões estruturais, que se preocupam com a organização das classes e dos objetos para formar estruturas maiores e mais complexas.
O principal objetivo do padrão Decorator é permitir que funcionalidades adicionais sejam acrescentadas a um objeto de forma dinâmica, sem alterar sua estrutura original. Isso é feito através da composição de objetos, onde um objeto é "decorado" com novas funcionalidades por meio de outras classes que implementam a mesma interface.
Agora, vamos analisar as alternativas incorretas para entender melhor por que elas não se aplicam ao padrão Decorator:
Alternativa A: comportamental, definir uma dependência entre objetos.
Esta alternativa está incorreta porque o padrão Decorator não pertence à categoria dos padrões comportamentais, que focam em como os objetos interagem e colaboram entre si. Além disso, o Decorator não define dependências entre objetos, mas sim, adiciona funcionalidades de forma dinâmica a um objeto.
Alternativa C: estrutural, ocultar a complexidade de uma classe.
Embora o Decorator seja um padrão estrutural, seu propósito não é ocultar a complexidade de uma classe, mas sim, permitir a extensão de funcionalidades de um objeto de maneira dinâmica. A ocultação da complexidade de uma classe é mais característica de padrões como o Facade.
Alternativa D: comportamental, criar compatibilidade entre um sistema e outros frameworks.
Esta alternativa está incorreta porque o padrão Decorator não pertence à categoria dos padrões comportamentais e não tem como objetivo principal criar compatibilidade entre sistemas e frameworks. Esse tipo de compatibilidade é mais típico de padrões como o Adapter, que permite que interfaces incompatíveis se comuniquem.
Em resumo, o padrão Decorator é um padrão estrutural cujo principal objetivo é estender funcionalidades de forma dinâmica a objetos, sem modificar a estrutura original deles.
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
A alternativa correta é B) estrutural, estender funcionalidades de forma dinâmica.
O padrão de projeto Decorator (Decorador) é classificado como um padrão estrutural, e sua finalidade principal é permitir estender dinamicamente a funcionalidade de um objeto, adicionando novos comportamentos sem a necessidade de criar novas subclasses.
Explicação:
1. Classificação: Estrutural
Os padrões estruturais se preocupam com a composição de classes e objetos para formar estruturas maiores, facilitando o projeto de software ao obter novas funcionalidades de forma flexível.
2. Finalidade: Estender funcionalidades de forma dinâmica
O padrão Decorator permite adicionar responsabilidades a objetos individuais de forma dinâmica e transparente, ou seja, sem afetar outros objetos do mesmo tipo. Isso é feito envolvendo (decorando) o objeto original com um objeto decorador que adiciona a nova funcionalidade desejada.
As outras alternativas estão incorretas:
A) Define uma dependência entre objetos (essa é a finalidade do padrão Dependency Injection).
C) Ocultar a complexidade de uma classe (essa é a finalidade do padrão Facade).
D) Criar compatibilidade entre um sistema e outros frameworks (não é a finalidade do padrão Decorator).
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo