PRINCIPLES

I - Interface Segregation Principle

Meglio molte interfacce specifiche che una troppo grande e generica. I client non devono dipendere da metodi che non usano.

Il Problema

Interfacce grandi forzano le classi a implementare metodi inutili. Accoppiamento forte e difficoltà di testing.

La Soluzione

Creare interfacce piccole e focalizzate. Ogni client vede solo i metodi di cui ha bisogno.

Struttura

Interfacce segregate per ruoli specifici. Classi implementano solo ciò che serve.

Partecipanti:
Interfacce specifiche - piccole e focalizzate
Implementazioni - solo metodi necessari
Esempi di Codice

PROBLEMA: Violazione ISP

Interfaccia troppo grande. SimplePrinter deve implementare metodi inutili.

JAVASCRIPT
Loading...

SOLUZIONE: Interfacce segregate (ISP)

Interfacce piccole e specifiche. Implementa solo ciò che serve.

JAVASCRIPT
Loading...
Esempi nel Mondo Reale
React props (componenti ricevono solo props usate)
API endpoints (REST specifici vs endpoint gigante)
Database repositories (interfacce per query specifiche)
Quando Usarlo
Quando interfacce crescono troppo
Per dependency injection pulita
Client con esigenze diverse dalla stessa classe
Quando NON Usarlo
Non frammentare eccessivamente se non porta benefici
Pattern Correlati