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.