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 a comienzos de la década del 2000 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.“SOLID Object-Oriented Design” , Sandi Metz (Duke University), Talk given at the 2009 Gotham Ruby Conference in May, 2009. Last verified 2009-01-15. 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

Inicial Acrónimo Concepto S SRPPrincipio de responsabilidad única (Single responsibility principle) la noción de que un objeto solo debería tener una única razón para cambiar. O OCPPrincipio 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”.“Design Principles and Design Patterns” , Robert C. Martin (“Uncle Bob”), objectmentor.com. Last verified 2009-01-14. 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”.La Inyección de Dependencias es uno de los métodos que siguen este principio.

Véase también Conceptos básicos y temas relacionados Desarrollo adaptativo de software Desarrollo ágil de software Reutilización de código Programación Programación orientada a objetos Herencia Navaja de Ockham

Principios de diseño y desarrollo DRY GRASP KISS YAGNI

Referencias

Categoría:Programación orientada a objetos Categoría:Diseño de software Categoría:Principios de programación