PRINCIPLES
O - Open/Closed Principle
Il codice dovrebbe essere aperto all'estensione ma chiuso alla modifica. Aggiungi nuove funzionalità senza modificare codice esistente.
Esempi di Codice
PROBLEMA: Violazione OCP
Ogni nuovo tipo di sconto richiede modifica del codice esistente. Rischio di bug.
JAVASCRIPT
Loading...
SOLUZIONE: Open/Closed (OCP)
Nuovi sconti = nuove classi. Codice esistente non toccato. Estensibile senza modifiche.
JAVASCRIPT
Loading...
Esempi nel Mondo Reale
Strategy pattern per algoritmi intercambiabili
Plugin systems (VS Code extensions)
Middleware chains (Express, Redux)
Event handlers (nuovi listener senza modifiche)
Quando Usarlo
Quando prevedi variazioni future (tipi di pagamento, sconti, formati)
Per sostituire if/else chains con polimorfismo
Plugin e sistemi estensibili
Quando NON Usarlo
Over-engineering se le variazioni sono improbabili
Pattern Correlati