Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FCC 2015
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
fc018265
Banca
FCC
Órgão
CNMP
Ano
2015
Nível
Superior
Cargo
Analista do - Tecnologia de Informação e Comunicação Desenvolvimento de Sistemas
Um Analista de Desenvolvimento de Sistemas do CNMP deve indicar o padrão de projeto mais adequado para ser aplicado na seguinte situação:Uma aplicação que existe simultaneamente em um dispositivo móvel e no ambiente corporativo, necessita de um processo de sincronização entre as informações processadas no dispositivo móvel e na base corporativa. Ambas as aplicações devem se comunicar com um objeto que deve ser único para processar este sincronismo, a fim de evitar a possibilidade de criar dados na base.O padrão de projeto corretamente indicado pelo Analista deve ser
AFactory Method, um padrão de criação, que busca definir o fluxo de um algoritmo em uma operação, postergando (deferring) alguns passos para subclasses, sem mudar a estrutura do mesmo.
BPrototype, um padrão estrutural, que busca fornecer uma interface para criação de famílias de objetos relacionados ou dependentes sem especificar suas classes concretas.
CSingleton, um padrão de criação, que busca garantir que um objeto terá apenas uma única instância, ou seja, uma classe irá gerar apenas um objeto e que este estará disponível de forma única para todo o escopo de uma aplicação.
DCommand, um padrão comportamental, que busca definir o fluxo de um algoritmo em uma operação, postergando (deferring) alguns passos para subclasses, sem mudar a estrutura do mesmo.
EFaçade, um padrão estrutural, que busca garantir que um objeto terá apenas uma única instância, ou seja, uma classe irá gerar apenas um objeto e que este estará disponível de forma única para todo o escopo de uma aplicação.
Revelar gabarito e comentário▾
GabaritoC — Singleton, um padrão de criação, que busca garantir que um objeto terá apenas uma única instância, ou seja, uma classe irá gerar apenas um objeto e que este estará disponível de forma única para todo o escopo de uma aplicação.
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: Singleton
Gabarito: letra C. A necessidade de um objeto único para processar a sincronização, evitando a criação de dados duplicados, é a aplicação clássica do padrão Singleton. Este padrão garante que uma classe tenha apenas uma única instância e fornece um ponto global de acesso a ela, exatamente o que o enunciado descreve.
A questão testa o conhecimento dos padrões GoF (Gang of Four) e suas classificações. O Singleton é um padrão criação (criação), enquanto as alternativas misturam definições e classificações.
Padrões GoF
1Criação
Singleton
Garante instância única
Ponto de acesso global
Factory Method
Interface para criar objetos
Subclasses decidem qual classe
Prototype
Criação por clonagem
Abstract Factory
Famílias de objetos relacionados
2Estrutural
Façade
Interface simplificada para subsistema
3Comportamental
Template Method
Posterga passos para subclasses
Command
Encapsula solicitação como objeto
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Define o Factory Method como um padrão que "posterga passos para subclasses". Essa descrição corresponde ao padrão Template Method (comportamental), não ao Factory Method. O Factory Method é um padrão criacional que define uma interface para criar objetos, mas permite que subclasses decidam qual classe instanciar. Não se aplica à necessidade de unicidade.
Alternativa B — ❌ Incorreta
Erra ao classificar o Prototype como "estrutural" — na verdade, ele é um padrão criação (criação). Sua descrição "fornecer uma interface para criação de famílias de objetos relacionados" corresponde ao padrão Abstract Factory. O Prototype cria objetos por clonagem, não resolve o problema de instância única.
Alternativa C — ✅ Correta ⟵ GABARITO
O Singleton é um padrão criação que "garante que um objeto terá apenas uma única instância, ou seja, uma classe irá gerar apenas um objeto e que este estará disponível de forma única para todo o escopo de uma aplicação". A definição corresponde exatamente ao descrito no enunciado: um objeto único para processar o sincronismo, evitando duplicidade de dados.
Alternativa D — ❌ Incorreta
Descreve o Command (comportamental) com a definição do Template Method. O Command encapsula uma solicitação como um objeto, permitindo parametrizar clientes com filas, requisições e operações. Não tem relação com unicidade de instância.
Alternativa E — ❌ Incorreta
O Façade é um padrão estrutural que fornece uma interface simplificada para um subsistema complexo. A descrição dada ("garantir que um objeto terá apenas uma única instância") é na verdade a definição do Singleton, mas associada ao padrão errado. A banca inverteu a definição para confundir o candidato.
NÃO CAIA NESSA!
A banca troca as definições entre os padrões. Em especial, a alternativa E atribui ao Façade (estrutural) a definição do Singleton (criação). Memorize a classificação e a finalidade de cada padrão GoF para não cair nesse tipo de armadilha.