Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — IV - UFG 2024
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
qg269989
Banca
IV - UFG
Órgão
Prefeitura de Rio Branco - AC
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Padrões de projeto são descrições de soluções prontas para problemas específicos e frequentes de software, podendo ser classificados de acordo com a natureza do problema que solucionam. A classificação e a finalidade do padrão de projeto Decorator são, respectivamente:
Acomportamental, definir uma dependência entre objetos.
Bestrutural, estender funcionalidades de forma dinâmica.
Cestrutural, ocultar a complexidade de uma classe.
Dcomportamental, criar compatibilidade entre um sistema e outros frameworks.
Revelar gabarito e comentário▾
GabaritoB — estrutural, estender funcionalidades de forma dinâmica.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Padrão de projeto Decorator
Gabarito: letra B. O Decorator é um padrão estrutural (lida com a composição de objetos para formar estruturas maiores) e sua finalidade é estender funcionalidades de objetos de forma dinâmica, sem alterar suas classes originais. Essa é a definição clássica do GoF (Gang of Four).
A banca testa o conhecimento da classificação e da finalidade específica de cada padrão. O Decorator faz parte dos padrões estruturais, pois utiliza a composição para adicionar responsabilidades a objetos em tempo de execução.
Padrão
Classificação
Finalidade
Decorator
Estrutural
Estender funcionalidades de forma dinâmica
Observer
Comportamental
Definir dependência entre objetos
Facade
Estrutural
Ocultar complexidade de uma classe
Adapter
Estrutural
Criar compatibilidade entre sistemas
Padrões GoF
1Estruturais
Decorator
Estende funcionalidades dinamicamente
Facade
Oculta complexidade
Adapter
Compatibiliza interfaces
2Comportamentais
Observer
Dependência entre objetos
Strategy
Algoritmos intercambiáveis
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Classifica o Decorator como comportamental e atribui a finalidade de definir uma dependência entre objetos. Padrões comportamentais lidam com algoritmos e atribuições de responsabilidades, como o Observer ou Strategy. Já "definir dependência" é característico do Observer, não do Decorator.
Alternativa B — ✅ Correta ⟵ GABARITO
Afirma que o Decorator é estrutural e serve para estender funcionalidades de forma dinâmica. É exatamente o que o padrão faz: permite adicionar novos comportamentos a um objeto sem modificar sua classe, por meio da composição recursiva com outros objetos "decoradores".
Alternativa C — ❌ Incorreta
Embora classifique corretamente como estrutural, a finalidade apresentada — ocultar a complexidade de uma classe — é do padrão Facade, não do Decorator. O Facade oferece uma interface simplificada para um subsistema complexo; o Decorator, por sua vez, adiciona funcionalidades.
Alternativa D — ❌ Incorreta
Erra tanto na classificação (comportamental) quanto na finalidade (criar compatibilidade entre um sistema e outros frameworks). Essa última descrição corresponde ao padrão Adapter, que é estrutural e serve para compatibilizar interfaces incompatíveis. O Decorator não visa compatibilidade, mas sim extensão dinâmica de comportamentos.
PEGA ESSA DICA!
Na hora da prova, associe cada padrão à sua categoria e à finalidade central. Os principais padrões estruturais do GoF são: Adapter, Bridge, Composite, Decorator, Facade, Flyweight e Proxy. Relembre a finalidade de cada um: Decorator = estender funcionalidades dinamicamente; Facade = simplificar interface; Adapter = compatibilizar interfaces; Composite = compor objetos em estruturas de árvore. Treinar essas associações evita confusão.