Está en la página 1de 1

Solid

/////////////////////////////////

Única responsabilidad
Hacer bien una cosa
Más fácil de definir y mantener

La integración con otras partes es más fácil


Una sola razón para cambiar
Juntar las cosas que cambian por la misma razón, separar las que cambian por razones diferentes

Abierto o cerrado
Añadir nuevo código extendiendo
Añadir sin modificar

Sustitución
Garantizar herencia coherente
Las clases derivadas deben ser poder sustituirse por sus clases base
Esto significa que los objetos deben poder ser reemplazados por instancias de sus subtipos sin alterar el correcto funcionamiento

Deberíamos poder usar cualquiera de sus subclases sin interferir en la funcionalidad del programa

Segregación de interfaces
Es preferible separar elementos que sean usados por distintos clientes

Inversión de dependencias
Ud no sabe como funciona algo, sólo lo básico para usarlo
Depender de abstracciones, no de clases concretas
Los módulos de alto nivel no deberían depender de módulos de bajo nivel. Ambos deberían depender de abstracciones.

Las abstracciones no deberían depender de los detalles. Los detalles deberían depender de las abstracciones.
Reducir las dependencias entre los módulos del código

Objetivos
Un software eficaz que cumpla su cometido
Código limpio y flexible
Código mantenible y reutilizable
Software escalable

Acoplamiento. Grado de interdependencia entre dos unidades


Cohesión. Grado en que varios elementos permanecen unidos para alcanzar un mejor resultado

También podría gustarte