Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — IV - UFG 2024

Arquitetura de SoftwarePadrõ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:
  1. Acomportamental, definir uma dependência entre objetos.
  2. Bestrutural, estender funcionalidades de forma dinâmica.
  3. Cestrutural, ocultar a complexidade de uma classe.
  4. 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.

Gabarito: letra B.

Link permanente: /questoes/qg269989