Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FCC 2015

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fc018597
Banca
FCC
Órgão
DPE-RR
Ano
2015
Nível
Superior
Cargo
Analista de Sistemas
Um Analista de Sistemas, em função da extrema tensão causada pelo curto prazo de entrega do novo software, concentrou a maior parte do sistema em uma classe central com dezenas de métodos e atributos. Os métodos foram obtidos de soluções prontas disponíveis nas comunidades de desenvolvedores e ele conseguiu entregar o sistema funcionando no prazo. O Analista
  1. Autilizou anti-patterns consagrados para os métodos.
  2. Bcriou a classe central baseado no design pattern Singleton.
  3. Cutilizou herança ao criar os métodos.
  4. Daplicou os princípios do design pattern conhecido como Input Kludge
  5. Eincorreu em uma solução anti-pattern conhecida como the blob.
Revelar gabarito e comentário

GabaritoE — incorreu em uma solução anti-pattern conhecida como the blob.

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”.

Anti-pattern The Blob (God Class)

Gabarito: letra E. A descrição do enunciado — classe central com dezenas de métodos e atributos, concentrando a maior parte do sistema — é a definição clássica do anti-pattern conhecido como The Blob (ou God Class). Esse anti-pattern viola o princípio da responsabilidade única (Single Responsibility Principle), pois uma única classe acumula funcionalidades que deveriam estar distribuídas entre várias classes coesas.

Alternativa

Descrição

Relação com o Enunciado

Correta?

A

Utilizou anti-patterns consagrados para os métodos

O enunciado não menciona anti-patterns nos métodos, apenas que foram obtidos de soluções prontas

B

Criou a classe central baseado no design pattern Singleton

Singleton controla instância única, não concentração de responsabilidades

C

Utilizou herança ao criar os métodos

Herança não é mencionada; o foco é centralização indevida

D

Aplicou os princípios do design pattern conhecido como Input Kludge

Input Kludge trata de entrada de dados complexa, não de classe inchada

E

Incorreu em uma solução anti-pattern conhecida como the blob

Classe central com dezenas de métodos/atributos = definição clássica de The Blob (God Class)

Alternativa A — ❌ Incorreta

O enunciado menciona que os métodos foram obtidos de soluções prontas, mas não que ele tenha usado anti-patterns nos métodos em si. O problema é a centralização excessiva na classe, não a qualidade individual dos métodos. A afirmação é genérica demais e não capta o anti-pattern específico.

Alternativa B — ❌ Incorreta

O padrão Singleton garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso. Não se trata de concentrar dezenas de métodos e atributos em uma única classe. O Singleton não é um anti-pattern por si só, e a situação descrita não corresponde a sua aplicação.

Alternativa C — ❌ Incorreta

Herança é um mecanismo de reutilização, mas o enunciado não menciona seu uso. O foco é a concentração indevida de responsabilidades em uma classe central, e não a forma como os métodos foram criados (herança ou composição).

Alternativa D — ❌ Incorreta

Input Kludge é um anti-pattern relacionado ao tratamento de entrada de dados de forma inconsistente e excessivamente complexa, geralmente com múltiplas rotinas para tratar casos especiais. Não tem relação com a centralização de funcionalidades em uma única classe.

Alternativa E — ✅ Correta ⟵ GABARITO

The Blob (também chamado de God Class) é um anti-pattern identificado por uma classe que assume muitas responsabilidades, tornando-se grande, difícil de manter e testar. Exatamente o que o analista fez ao concentrar a maior parte do sistema em uma classe central com dezenas de métodos e atributos. É uma das soluções mais conhecidas e criticadas na literatura de padrões de projeto, como no catálogo de anti-patterns de Brown et al. ("AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis").

Gabarito: letra E.

Link permanente: /questoes/fc018597