Interface Segregation Principle

Architecture 🟡 Mid

Définition

Un client ne doit pas être force de dépendre d'interfaces qu'il n'utilise pas. Préférer plusieurs interfaces spécifiques a une seule interface générâle.

Analogie

Une télécommande par appareil plutôt qu'une télécommande 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

Éviter les implémentations vides ou les throws 'not supported' dans les classes.

Anti-pattern

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

← → au clavier pour passer d'une fiche à l'autre