SOLID
# SOLID

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. 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 | 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”. |
| 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. |
