mercredi 9 mars 2011

SOLID, 5 concepts orientés objet

Dans la conception d'application orientée objet, SOLID est un acronyme introduit par Robert Cecil Martin (alias "Oncle Bob") au début des années 2000. SOLID est la réunion de 5 concepts ou principes en programmation orientée objet. Appliqués ensemble, ils sont susceptibles de permettre de créer des systèmes logiciels plus faciles à maintenir et à faire évoluer. SOLID fait partie des pratiques agiles d'ingénierie logicielle, et peut être un complément puissant à la méthode de pilotage par les tests (Test-Driven Development).


Les 5 principes repris par SOLID sont :
  • S pour SRP, Single Responsibility Principle (principe de la responsabilité unique) :
    Un objet ne devrait avoir qu'une seule responsabilité.
  • O pour OCP, Open/Closed Principle (principe ouvert/fermé) :
    Une entité logicielle, telle que classes, modules, fonctions, etc, devrait être ouverte pour extension, mais fermée pour modification.
  • L pour LSP, Liskov Substitution Principle (principe de substitution de Liskov) :
    Il doit être possible de remplacer un objet par n'importe quelle instance de ses types dérivés, sans que cela affecte le reste de la fonction qui l'utilise.
  • I pour ISP, Interface Segregation Principle (principe de ségrégation des interfaces) :
    Mieux vaut avoir autant d'interfaces que de clients, plutôt qu'une interface à vocation générale.
    Autrement dit, les clients d'une interface ont besoin de connaître de cette interface seulement les méthodes qu'ils utilisent. Inversement, un client ne doit pas dépendre d'une interface dont il n'utilise pas une partie.
  • D pour DIP, Dependency Inversion Principle (principe d'inversion des dépendances) :
    L'inversion des dépendances s'énonce en 2 points :
    1. Des modules haut niveau ne devraient pas dépendre de modules bas niveau et des détails de leur implémentation. Tous devraient dépendre d'abstractions.
    2. Les abstractions ne devraient pas dépendre des détails, mais les détails devraient dépendre des abstractions.
    Exemple : L'Injection de Dépendances (Inversion of Control) est une méthode qui applique ce principe.
Références :

Aucun commentaire: