ANTIPATTERN

God Object

Un anti-pattern dove una singola classe diventa responsabile di troppi compiti diversi, violando il Single Responsibility Principle.

Il Problema

Quando una classe accumula troppe responsabilità (autenticazione, database, UI, logica business, notifiche), diventa un punto centrale che conosce e fa tutto. Questo rende il codice fragile, difficile da testare, impossibile da riutilizzare e un incubo da manutenere.

La Soluzione

Separare le responsabilità in classi dedicate seguendo il Single Responsibility Principle. Ogni classe dovrebbe avere un solo motivo per cambiare. Usare pattern come Service Layer, Repository, Facade per organizzare il codice.

Struttura

Una God Class che contiene decine di metodi non correlati. La soluzione prevede la creazione di classi specializzate (AuthService, Database, UIRenderer, NotificationService) ciascuna con una singola responsabilità.

Partecipanti:
God Class - la classe problematica che fa tutto
Classi specializzate - AuthService, Database, UIRenderer, ciascuna con una responsabilità
Esempi di Codice

PROBLEMA: God Object - Una classe che fa tutto

Questa classe gestisce autenticazione, database, grafica, logica e notifiche. Impossibile da testare o riutilizzare.

JAVASCRIPT
Loading...

SOLUZIONE: Separazione delle responsabilità

Ogni classe ha una singola responsabilità. Codice testabile, riutilizzabile e manutenibile.

JAVASCRIPT
Loading...
Esempi di Errori Comuni
Classe Application che gestisce routing, database, sessioni, rendering e logging
Manager class che coordina troppi componenti diversi
Utility class con metodi non correlati (DateUtils che include anche StringUtils)
Controller monolitico che gestisce business logic, validazione e database
Perché Evitarlo
È un anti-pattern da evitare sempre
Come Correggerlo
Refactora in classi specializzate
Separa responsabilità seguendo Single Responsibility Principle
Usa Service Layer, Repository, Facade patterns