Principe de ségrégation des interfaces
From Wikipedia, the free encyclopedia
En programmation orientée objet, le principe de ségrégation des interfaces (en anglais : Interface Segregation Principle ou ISP) stipule qu'aucun client ne devrait dépendre de méthodes qu'il n'utilise pas[1]. Il faut donc diviser les interfaces volumineuses en plus petites plus spécifiques, de sorte que les clients n'ont accès qu'aux méthodes intéressantes pour eux. Ces interfaces rétrécies sont également appelées interfaces de rôle[2]. Tout ceci est destiné à maintenir un système à couplage faible, donc plus facile à refactoriser.
Le principe de ségrégation des interfaces correspond au « I » de l'acronyme SOLID. Il est comparable à la cohésion des principes GRASP[3].
Dans une conception orientée objet, les interfaces fournissent des couches d'abstraction qui facilitent l'explication du code, et créent une barrière empêchant le couplage à des dépendances.
Selon de nombreux experts en logiciel qui ont signé le Software craftsmanship, écrire un code compréhensible est presque aussi important qu'un code qui marche[4]. Les interfaces décrivant les intentions du logiciel sont donc souvent une bonne idée.
Un système peut devenir tellement couplé à de multiples niveaux qu'il n'est plus possible de faire un changement dans un seul endroit, sans recourir à de nombreux autres. Une interface ou une classe abstraite peut éviter cet effet secondaire.