sábado, 3 de marzo de 2012

SOLID: Los 5 Principios Fundamentales de la Orientación a Objetos

SOLID es un acrónimo inventado por Robert C. Martin que resume los cinco principios fundamentales de la programación orientada a objetos. Es muy fácil entender las definiciones de herencia, composición, abstracción, encapsulamiento o polimorfismo. Pero así como conocer las reglas del ajedrez no te hace un buen jugador, lo mismo pasa con la programación orientada a objetos: se puede conocer los conceptos pero no saber utilizarlos.

Entender para qué sirve la orientación a objetos fue un proceso que demoró varios años. Muchos libros de patrones de diseño corrieron en el medio. Si un programador viene del paradigma de la programación estructurada, lo primero que hará será escribir clases como si fueran TDAs, archivos en donde poder agrupar atributos y métodos y nada más.

SOLID, por sus siglas en inglés, significa:

  • Single Responsibility: cada objeto debe tener una única responsabilidad
  • Open/Close: abierto para la extensión, clausurado ante cambios
  • Liskov Substitution: las clases hijas deben poder ser tratadas como las clases padre
  • Interface Segregation: es preferible muchas interfaces con pocos métodos a pocas interfaces con muchos métodos
  • Dependency Inversion: los componentes deben depender de abstracciones, no de implementaciones concretas
SOLID resume buenas practicas en el uso de las distintas técnicas que provee el paradigma, prácticas fundamentales para el buen diseño que propician la mantenibilidad, extensibilidad, adaptabilidad y escalabilidad del código, y sobre todo la salud de los programadores que tendrán que leer y/o modificar nuestro código (que podemos ser nosotros mismos dentro de unos años).

Estos principios son fundamentales para escribir un buen Modelo de Dominio orientado a objetos.

Me abstengo de escribir un post entero para cada principio (por lo menos por ahora). De la inversión de dependencia creo que he hablado alguna vez en este blog o en Tecnologías Java. No dejo links porque encontrar la explicación de los principios SOLID es tan simple como buscarlos en Google (un montón de gente ya los explica) o en Wikipedia. Y, por supuesto, siempre están los libros Robert C. Martin, que son la fuente original.