SOLIDE
En génie logiciel, SOLID est un acronyme mnémotechnique pour cinq principes de conception destinés à rendre les conceptions de logiciels plus compréhensibles, flexibles et maintenables . Les principes sont un sous-ensemble de nombreux principes promus par l’ingénieur logiciel et instructeur américain Robert C. Martin , [1] [2] [3] introduits pour la première fois dans son article de 2000 Design Principles and Design Patterns . [2] [4]
Les idées SOLIDES sont
- Le principe de responsabilité unique : “Il ne devrait jamais y avoir plus d’une raison pour qu’une classe change.” [5] En d’autres termes, chaque classe ne devrait avoir qu’une seule responsabilité. [6]
- Le principe ouvert-fermé : “Les entités logicielles … doivent être ouvertes pour extension, mais fermées pour modification.” [7]
- Le principe de substitution de L iskov : “Les fonctions qui utilisent des pointeurs ou des références à des classes de base doivent pouvoir utiliser des objets de classes dérivées sans le savoir.” [8] Voir aussi conception par contrat . [8]
- Le principe de ségrégation des interfaces : “De nombreuses interfaces spécifiques au client valent mieux qu’une interface à usage général.” [9] [4]
- Le principe d’ inversion de dépendance : “Dépendez d’abstractions, [pas] de concrétions.” [10] [4]
L’acronyme SOLID a été introduit plus tard, vers 2004, par Michael Feathers. [11]
Bien que les principes SOLID s’appliquent à toute conception orientée objet, ils peuvent également constituer une philosophie de base pour des méthodologies telles que le développement agile ou le développement de logiciels adaptatifs . [3]
Voir également
- Réutilisation du code
- Héritage (programmation orientée objet)
- Principes de l’emballage
- Ne te répète pas (DRY)
- GRASP (conception orientée objet)
- Principe KISS
- Tu n’en auras pas besoin (YAGNI)
Références
- ^ Robert C. Martin . “Principes d’OOD” . butunclebob.com . Récupéré le 17/07/2014 .. (Notez la référence aux “cinq premiers principes”, bien que l’acronyme ne soit pas utilisé dans cet article.) Remonte au moins à 2003.
- ^ un b Robert C. Martin. “Prendre un bon départ” . objectmentor.com . Récupéré le 19/08/2013 .
- ^ un b Sandi Metz (mai 2009). “Conception orientée objet SOLIDE” . Youtube . Archivé de l’original le 2021-12-21 . Récupéré le 13/08/2019 . Conférence donnée à la Gotham Ruby Conference 2009.
- ^ un bc Martin, Robert C. (2000) . “Principes de conception et modèles de conception” (PDF) . Archivé de l’original (PDF) le 2015-09-06.
- ^ “Principe de responsabilité unique” (PDF) . objectmentor.com . Archivé de l’original (PDF) le 2 février 2015.
- ^ Martin, Robert C. (2003). Développement logiciel agile, principes, modèles et pratiques . Prentice Hall. p. 95. ISBN 978-0135974445.
- ^ “Principe ouvert / fermé” (PDF) . objectmentor.com . Archivé de l’original (PDF) le 5 septembre 2015.
- ^ un b “le Principe de Substitution de Liskov” (PDF) . objectmentor.com . Archivé de l’original (PDF) le 5 septembre 2015.
- ^ “Principe de Ségrégation d’Interface” (PDF) . objectmentor.com . 1996. Archivé de l’original (PDF) le 5 septembre 2015.
- ^ “Principe d’inversion de dépendance” (PDF) . objectmentor.com . Archivé de l’original (PDF) le 5 septembre 2015.
- ^ Martin, Robert (2018). Architecture propre : Guide de l’artisan sur la structure et la conception des logiciels . p. 58. ISBN 9780134494166.