Taller de Programación

SOLID de Robert C. Martin

SOLID es un acronimo inventado por Robert C. Martin, para establecer cinco principios basicos de la programación orientada a objetos. Se centran sobre todo en ofrecer codigo de Alta cohesión y bajo acoplamiento. Son cinco Principios Single Reponsability, Open/Closed, Liskov substituion, Interface Segregation, Dependency Inversion.

  • Single Responsibility (Responsabilidad Simple)

Este principio trata de que cada clase tiene una finalidad sencilla y concreta, es decir cada clase hace exclusivamente una cosa.

  • Open/Closed (Abierto/Cerrado)

Este principio se refiere a crear clases extensibles sin necesidad de entrar al codigo fuente a modificarlo, en otras palabras el diseño debe ser abierto para poder extenderse pero cerrado para poderse modificar. La manera más común de extensión es mediante la herencia o tambien con interfaces, de ambas maneras el comportamiento de la clase cambia sin que hayamos tenido que tocar el codigo interno.

  • Liskov Sustitution (Sustitución Liskov)

Este principio es sobre la importancia de crear todas derivdas para que tambien puedas ser tratadas como la propia clase base, es decir cuando creamos clases derivadas debemos asegurarnos de no reimplementar metodos que hagan que los metodos de las clase base no funcionasen si se tratasen de un objeto de esa clase.

  • Interface Segregation (Segregación de interfaces)

Cuando se definen interfaces estas deben ser especificas a una finalidad concreta, en otras palabras, es preferible tener muchas interfaces que definan pocos metodos que tener una interface con muchos metodos. El objetivo de este principio es poder reaprovechar las interfaces de otras clases.

  • Dependency Inversion

El objetivo de este principio consiste en el uso de abstracciones para conseguir que una clase interactue con otras clases sin tenerlas que conocer directamente. Es decir, las clases de nivel superior no deben conocer a las clases de nivel inferior, no deben conocer los detalles. Hay varios patrones como la inyeccion de dependencias o el service locator que nos permite invertir el control.

  • Programacion (5)
  • Eventos (3)
  • Webservices (2)
  • Patrones (1)