No tocante ao padrão de projeto Decorator, também conhecido...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a B.
Vamos analisar o padrão de projeto Decorator (ou Wrapper) e entender o porquê da alternativa B ser a correta, além de comentar as alternativas incorretas.
Alternativa B: O Decorator adiciona responsabilidades a um objeto dinamicamente, de modo que constitui uma alternativa à prática da implementação de subclasses.
O padrão Decorator é utilizado para adicionar funcionalidades a objetos de maneira dinâmica e transparente ao cliente que utiliza esses objetos. Ele permite que novas responsabilidades sejam atribuídas a um objeto sem modificar o código existente, evitando, assim, a necessidade de criar diversas subclasses. Isso proporciona uma maior flexibilidade e reutilização de código.
Agora, vejamos as alternativas incorretas:
Alternativa A: O citado padrão resulta em implementações menos flexíveis do que a herança estática.
Essa alternativa está incorreta porque, na verdade, o padrão Decorator oferece maior flexibilidade em comparação à herança estática. A herança estática muitas vezes leva a hierarquias de classes rígidas e difíceis de modificar. O Decorator permite que responsabilidades sejam adicionadas ou removidas dinamicamente, o que favorece a flexibilidade e a manutenção do código.
Alternativa C: Os objetos resultantes da implementação de um Decorator possuem diversas diferenças, porém as formas como eles se conectam são as mesmas.
Enquanto o padrão Decorator realmente cria uma estrutura onde os objetos podem ser compostos de diferentes maneiras, a afirmação de que "as formas como eles se conectam são as mesmas" não é totalmente precisa. A conexão entre os objetos decorados pode variar, dependendo de como os decoradores são aplicados, e isso não é o ponto principal do padrão.
Alternativa D: Uma das vantagens de sistemas implementados no referido padrão é que eles possuem diversos objetos parecidos.
Embora seja verdade que o uso do Decorator pode resultar em objetos com funcionalidades incrementais semelhantes, o principal benefício do padrão é a capacidade de adicionar responsabilidades dinamicamente, não simplesmente ter "objetos parecidos".
Alternativa E: O mencionado padrão de projeto não permite adicionar responsabilidades extras ao objeto desejado.
Essa alternativa está completamente incorreta, pois o principal propósito do Decorator é exatamente permitir a adição de responsabilidades extras aos objetos de forma dinâmica e transparente.
Espero que essa explicação tenha esclarecido suas dúvidas sobre o padrão de projeto Decorator. Se precisar de mais detalhes ou tiver outras questões, estarei à disposição!
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
Decorator (Decorador)(Responsabilidade)
Anexa responsabilidades adicionais a um objeto dinamicamente. Os decoradores fornecem uma alternativa flexível de subclasses para estender a funcionalidade
Letra B
Fonte: padrões de projetos - Erich Gamma
Decorator - Padrão estrutural.
Aplicado quando:
- Se deseja acrescentar responsabilidades a objetos individuais de forma dinâmica e transparente;
- Para responsabilidades que podem ser removidas;
- Quando a extensão através do uso de subclasses não é prática.
(Fonte: Gamma)
At.te
Foco na missão ❢
b-
decorator decora um objeto com responsabilidades e funcionalidades estendidas;
Falou de responsabilidade, lembro do Decorator.
LETRA B
Pensa comigo, quando aplicamos uma decoração a uma casa? Quando ela está pronta. Uma decoração faz o quê? Adiciona detalhes, cores, ideias, enfim muda o ambiente.
Então o padrão DECORETOR, decora um OBJETO DINAMICAMENTE, porque você decora algo que tá pronto (classe instanciada), adicionando novas RESPONSABILIDADES, ou seja, o decorator adiciona mais detalhes, novas ideias e por aí vai.
Pega o BIZU: @rodolfodalves.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo