Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FUNDATEC 2023
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
qq894238
Banca
FUNDATEC
Órgão
IF-SC
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Em Padrões de Projetos de Software ou Design Patterns, o padrão é uma descrição de conhecimento e experiência, uma solução já aprovada para um problema comum. Um padrão muito conhecido separa o display do estado de um objeto a partir do objeto em si e permite que sejam fornecidos displays alternativos. Quando o estado do objeto muda, todos os displays são automaticamente notificados e atualizados para refletir a mudança. Qual é o nome desse padrão?
AFactory Method.
BSingleton.
CDecorator.
DObserver.
EFacade.
Revelar gabarito e comentário▾
GabaritoD — Observer.
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 Observer (Observador)
Gabarito: letra D (Observer). O padrão descrito é o Observer, que define uma dependência um-para-muitos entre objetos, de modo que quando um objeto (sujeito) muda de estado, todos os seus dependentes (observadores) são notificados e atualizados automaticamente. É exatamente o que o enunciado descreve: separar o display do estado do objeto e permitir displays alternativos que são notificados quando o estado muda.
O padrão Observer é um dos 23 padrões GoF, classificado como padrão comportamental. Sua intenção é definir uma dependência um-para-muitos entre objetos para que, quando um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizados automaticamente.
Alternativa A — ❌ Incorreta (Factory Method)
Factory Method é um padrão criacional que define uma interface para criar um objeto, mas permite que as subclasses decidam qual classe instanciar. Não tem relação com notificação de mudanças de estado.
Alternativa B — ❌ Incorreta (Singleton)
Singleton é um padrão criacional que garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela. Não envolve múltiplos displays nem notificação.
Alternativa C — ❌ Incorreta (Decorator)
Decorator é um padrão estrutural que permite adicionar responsabilidades a um objeto dinamicamente, sem alterar sua interface. Embora possa envolver composição, não tem o mecanismo de notificação automática descrito.
Alternativa D — ✅ Correta (Observer) ⟵ GABARITO
O Observer separa o estado do objeto (sujeito) dos seus displays (observadores). Quando o estado muda, todos os observadores são notificados e atualizados automaticamente. Exemplo clássico: interfaces gráficas que atualizam múltiplas visões de um mesmo modelo.
Alternativa E — ❌ Incorreta (Facade)
Facade é um padrão estrutural que fornece uma interface simplificada para um conjunto de interfaces de um subsistema. Não se relaciona com notificação de mudanças.
PEGA ESSA DICA!
Para identificar o padrão Observer na prova, procure palavras como "notificar", "atualizar automaticamente", "displays alternativos", "dependência um-para-muitos". Ele é o único padrão que descreve esse comportamento de "publicar-assinar" (publish-subscribe).