En ingeniería de software, SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) es un acrónimo mnemónico introducido por Robert C. Martin[1]​ a comienzos de la década del 2000[2]​ que representa cinco principios básicos de la programación orientada a objetos y el diseño. Cuando estos principios se aplican en conjunto es más probable que un desarrollador cree un sistema que sea fácil de mantener y ampliar con el tiempo.[3]​ Los principios SOLID son guías que pueden ser aplicadas en el desarrollo de software para eliminar malos diseños provocando que el programador tenga que refactorizar el código fuente hasta que sea legible y extensible. Puede ser utilizado con el desarrollo guiado por pruebas, y forma parte de la estrategia global del desarrollo ágil de software y desarrollo adaptativo de software.

Resumen editar

Inicial Acrónimo Concepto
S SRP
Principio de responsabilidad única (Single responsibility principle)
la noción de que un objeto solo debería tener una única razón para cambiar.
O OCP
Principio de abierto/cerrado (Open/closed principle)
la noción de que las “entidades de software … deben estar abiertas para su extensión, pero cerradas para su modificación”.
L LSP
Principio de sustitución de Liskov (Liskov substitution principle)
la noción de que los “objetos de un programa deberían ser reemplazables por instancias de sus subtipos sin alterar el correcto funcionamiento del programa”. Véase también diseño por contrato.
I ISP
Principio de segregación de la interfaz (Interface segregation principle)
la noción de que “muchas interfaces cliente específicas son mejores que una interfaz de propósito general”.[4]
D DIP
Principio de inversión de la dependencia (Dependency inversion principle)
la noción de que se debe “depender de abstracciones, no depender de implementaciones”.[4]
La Inyección de Dependencias es uno de los métodos que siguen este principio.

Véase también editar

Conceptos básicos y temas relacionados editar

Principios de diseño y desarrollo editar

Referencias editar

  1. Uncle Bob (2 de diciembre de 2009). «Getting a SOLID start.» (en inglés). Consultado el 14 de julio de 2021. 
  2. «SOLID Object-Oriented Design» (en inglés). Archivado desde el original el 7 de febrero de 2010. Consultado el 14 de julio de 2021. 
  3. “SOLID Object-Oriented Design” Archivado el 7 de febrero de 2010 en Wayback Machine., Sandi Metz (Duke University), Talk given at the 2009 Gotham Ruby Conference in May, 2009. Last verified 2009-01-15.
  4. a b “Design Principles and Design Patterns” Archivado el 6 de septiembre de 2015 en Wayback Machine., Robert C. Martin (“Uncle Bob”), objectmentor.com. Last verified 2009-01-14.

SOLID Y GRASP. Buenas prácticas hacia el éxito en el desarrollo de software.