S.O.L.I.D, cinco principios básicos de la programación y diseño orientado a objetos

En la década del 2000, Robert C. Martin (Uncle Bob) introdujo S.O.L.I.D, un acrónimo que representa cinco principios básicos de programación y diseño orientado a objetos y que aplicados en conjunto aumentan la probabilidad de que se desarrolle un sistema mantenible y escalable.

Single responsibility principle

Principio de responsabilidad única:

No debería haber nunca más de una razón para cambiar una clase.

Open / Close Principle

Principio de abierto / cerrado:

Las entidades de software deben estar abiertas para su extensión, pero cerradas para su modificación.

Liskov Substitution Principle

Principio de sustitución de Liskov (Barbara Liskov):

Los objetos deberían ser reemplazables por instancias de sus subtipos sin alterar el correcto funcionamiento de la aplicación.

Interface Segregation Principle

Principio de segregación de interfaces:

Los clientes no deberían ser forzados a depender de interfaces que no utilizan.

Dependency Inversion Principle

Principio de inversión de dependencias

A. Módulos de alto nivel no deberían depender de módulos de bajo nivel. Ambos deberían depender de abstracciones.

B. Las abstracciones no deberían depender de los detalles. Los detalles deberían depender de las abstracciones.