Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — UFSM 2025

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
qg621772
Banca
UFSM
Órgão
UFSM
Ano
2025
Nível
Superior
Cargo
Professor EBTT - Área: Ciências Exatas e da Terra/Ciência da Computação/ Metodologia e Técnicas da Computação
Assinale a alternativa que indica o padrão que implementa uma estrutura de inversão de controle chamada de “o princípio de Hollywood”, que diz: “não nos chame, nós chamaremos você”.
  1. AProxy.
  2. BAdapter.
  3. CTemplate Method.
  4. DMediator.
  5. EInterpreter.
Revelar gabarito e comentário

GabaritoC — Template Method.

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ões de projeto: Template Method e o Princípio de Hollywood

Gabarito: letra C. O padrão Template Method implementa a inversão de controle conhecida como "princípio de Hollywood" ("não nos chame, nós chamaremos você"), pois define o esqueleto de um algoritmo em um método da superclasse, que invoca métodos abstratos implementados pelas subclasses. Dessa forma, é a superclasse que controla o fluxo, chamando os métodos das subclasses, e não o contrário.

A questão testa o conhecimento dos padrões comportamentais do GoF e a compreensão do conceito de inversão de controle.

Padrão

Categoria

Relação com o Princípio de Hollywood (Inversão de Controle)

Descrição

Proxy

Estrutural

❌ Não se aplica

Fornece um substituto para controlar o acesso a outro objeto

Adapter

Estrutural

❌ Não se aplica

Converte a interface de uma classe em outra esperada pelo cliente

Template Method

Comportamental

✅ Implementa o princípio

Define o esqueleto de um algoritmo na superclasse, que chama métodos das subclasses

Mediator

Comportamental

❌ Não se aplica

Encapsula a interação entre objetos, promovendo baixo acoplamento

Interpreter

Comportamental

❌ Não se aplica

Define representação para gramática e interpretador para sentenças

Padrões GoF
  • 1Comportamentais
    • Template Method
      • Princípio de Hollywood
      • Superclasse chama subclasses
    • Mediator
      • Encapsula interação entre objetos
    • Interpreter
      • Gramática de linguagem
  • 2Estruturais
    • Proxy
      • Substituto para controle de acesso
    • Adapter
      • Converte interface
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Proxy é um padrão estrutural que fornece um substituto (surrogate) para controlar o acesso a outro objeto. Não há inversão de controle no sentido do princípio de Hollywood.

Alternativa B — ❌ Incorreta

Adapter é um padrão estrutural que converte a interface de uma classe em outra interface esperada pelo cliente. Não está relacionado à inversão de controle.

Alternativa C — ✅ Correta ⟵ GABARITO

Template Method é um padrão comportamental que define o esqueleto de um algoritmo em uma operação, deixando que subclasses implementem passos específicos. A superclasse contém o template method que chama métodos abstratos ou com implementação padrão, invertendo o controle: a superclasse (o framework) chama os métodos das subclasses, materializando o princípio de Hollywood.

Alternativa D — ❌ Incorreta

Mediator é um padrão comportamental que define um objeto que encapsula a interação entre um conjunto de objetos, promovendo baixo acoplamento. Não implementa inversão de controle no sentido do template method.

Alternativa E — ❌ Incorreta

Interpreter é um padrão comportamental que define uma representação para a gramática de uma linguagem e um interpretador que usa essa representação para interpretar sentenças. Não se aplica ao princípio de Hollywood.

PEGA ESSA DICA!

O princípio de Hollywood está diretamente associado ao Template Method. Em frameworks, a classe base (abstrata) chama os métodos das subclasses – o oposto do fluxo tradicional. Para fixar: lembre-se de que no Template Method o "quem chama" é a superclasse (o esqueleto do algoritmo).

Link permanente: /questoes/qg621772