SOLID


Hoy estábamos hablando de conocimientos básicos de programación, y han salido los principios SOLID (que no tienen nada que ver con "METAL GEAR SOLID", pero me hace gracia).

Hace años me lo sabía de memoria, pero con el paso del tiempo se me ha quedado como una ligera reminiscencia.

Voy a aprovechar y escribir un resumen sobre estos cinco principios básicos.

SOLID es un acrónimo (Robert C.Martin) que establece los cinco principios básicos de la programación orientada a objetos y diseño. Tiene bastante relación con los patrones de diseño, y su objetivo principal es la alta cohesió-n y el bajo acoplamiento.

Cada letra tiene el siguiente significado:
  • S - Single responsibility
  • O - Open/Closed
  • L - Liskov substitution
  • I - Interface segregation
  • D - Dependency inversion

Single responsibility

Una clase para un fin simple y sencillo. Nada de meter métodos útiles, pero que no tienen sentido en esta clase.

Open/Closed

Crear clases extensibles sin necesidad de entrar al código fuente a modificarlo. El diseño debe ser abierto para poderse extender pero cerrado para poderse modificar.

Esto lo conseguimos a través de herencia y reimplementando métodos.

Sustitucion Liskov

Hay que crear todas las clases hijas para que también puedan ser tratadas como la propia clase padre. Cuando extendemos clases debemos asegurarnos de no reimplementar métodos que hagan que los métodos de la clase padre no funcionasen si se tratasen como un objeto de esa clase padre.

Interface segregation

Los interfaces deben ser específicos a una finalidad concreta. Es mejor tener muchos interfaces con  pocos métodos que tener uno solo con muchos métodos.

Dependency inversion
Hay que evitar el acoplamiento a toda costa. ¿Cómo? a través de la abstracción, para conseguir que una clase interactúe con otras clases sin que las conozca directamente.

Existen diferentes patrones como la inyección de dependencias que nos permiten invertir el control.

 Y hasta aquí mi pequeño resumen.

Un abrazo.

Comentarios

Publicar un comentario