Interface Segregation Principle

Architecture 🟡 Mid

Definition

Un client ne doit pas etre force de dependre d'interfaces qu'il n'utilise pas. Preferer plusieurs interfaces specifiques a une seule interface generale.

Analogie

Une telecommande par appareil plutot qu'une telecommande universelle avec 200 boutons dont tu n'en utilises que 5.

Exemple de code

// Mauvais: interface Animal { fly(); swim(); run(); }
// Bon:
interface Flyable { fly(): void; }
interface Swimmable { swim(): void; }
class Duck implements Flyable, Swimmable { }

Cas d'usage

Eviter les implementations vides ou les throws 'not supported' dans les classes.

Anti-pattern

Fat interface avec 20 methodes dont la plupart des implementeurs n'en utilisent que 3.
#architecture#interview#principle