Pular para o conteúdo principal

Questão de Engenharia de Software — Orientação a Objetos — CESPE / CEBRASPE 2025

Engenharia de SoftwareOrientação a Objetos
Código
ce195216
Banca
CESPE / CEBRASPE
Órgão
BANRISUL
Ano
2025
Nível
Superior
Cargo
Técnico em Tecnologia da Informação II - Desenvolvimento de Software
Durante o desenvolvimento de sistemas que exigem controle sobre a criação de instâncias, o padrão de projeto cuja adoção pode evitar múltiplos objetos redundantes e facilitar o acesso centralizado caracteriza-se por
  1. Acontrolar a criação de instâncias e fornecer um único ponto de acesso global à classe.
  2. Bimplementar um mecanismo de destruição automática da instância após cada uso.
  3. Ccriar múltiplas instâncias da mesma classe para otimizar o desempenho do sistema.
  4. Dpermitir que diferentes partes do código acessem instâncias distintas da mesma classe.
  5. Eutilizar herança para garantir que todas as subclasses tenham múltiplas instâncias.
Revelar gabarito e comentário

GabaritoA — controlar a criação de instâncias e fornecer um único ponto de acesso global à classe.

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 Singleton

Gabarito: letra A. A questão descreve exatamente o padrão Singleton: controlar a criação de instâncias (construtor privado) e fornecer um ponto de acesso global (método estático que retorna a única instância). Esse padrão evita múltiplos objetos redundantes e facilita o acesso centralizado, conforme definido no catálogo GoF (Gamma et al.).

A banca testa o reconhecimento do padrão Singleton e a capacidade de distingui-lo de outros conceitos. Vamos analisar cada alternativa:

Alternativa

Descrição

Correta?

Justificativa

A

Controlar a criação de instâncias e fornecer um único ponto de acesso global à classe

✅ Sim

Corresponde exatamente ao padrão Singleton: construtor privado + método estático de acesso global

B

Implementar um mecanismo de destruição automática da instância após cada uso

❌ Não

Singleton mantém a instância viva durante toda a execução; destruição automática não é característica do padrão

C

Criar múltiplas instâncias da mesma classe para otimizar o desempenho do sistema

❌ Não

Singleton visa evitar múltiplas instâncias; é o oposto do que o padrão propõe

D

Permitir que diferentes partes do código acessem instâncias distintas da mesma classe

❌ Não

Singleton garante que todas as partes acessem a mesma instância, não instâncias distintas

E

Utilizar herança para garantir que todas as subclasses tenham múltiplas instâncias

❌ Não

Singleton não depende de herança; é implementado em uma única classe

Alternativa A — ✅ Correta ⟵ GABARITO

Corresponde literalmente à definição do Singleton: a classe garante que apenas uma instância seja criada e fornece um ponto de acesso global a ela. Isso é feito geralmente com um construtor privado e um método estático (como getInstance()).

Alternativa B — ❌ Incorreta

Apresenta um mecanismo de destruição automática da instância após cada uso, o que não é característica do Singleton. O Singleton mantém a instância viva durante toda a execução ou até que explicitamente destruída; a destruição automática não faz parte do padrão. Além disso, isso contraria a ideia de reuso e centralização.

Alternativa C — ❌ Incorreta

Afirma que o padrão cria múltiplas instâncias para otimizar desempenho. Isso é o oposto do Singleton, que visa evitar múltiplas instâncias. Padrões como Flyweight ou Pool de Objetos lidam com múltiplas instâncias para otimização, mas não Singleton.

Alternativa D — ❌ Incorreta

Diz que permite que diferentes partes do código acessem instâncias distintas da mesma classe. O Singleton, ao contrário, garante que todas as partes do código acessem a mesma instância. Instâncias distintas é o comportamento normal sem Singleton.

Alternativa E — ❌ Incorreta

Associa o padrão ao uso de herança para garantir que todas as subclasses tenham múltiplas instâncias. O Singleton não depende de herança para esse fim; ele é implementado em uma única classe. Herança não é característica definidora do Singleton.

PEGA ESSA DICA!

O Singleton é um dos padrões mais cobrados em concursos. Lembre-se dos três pilares: (1) construtor privado (controle de criação), (2) método estático de acesso (ponto global), (3) atributo estático que armazena a única instância. Cuidado com alternativas que falem em múltiplas instâncias ou destruição – elas quase sempre estão erradas.

Gabarito: letra A.

Link permanente: /questoes/ce195216