Introducción
SOLID es un acrónimo para los principios de diseño de software de alta calidad desarrollado por Robert C. Martin. Estos principios son una guía para desarrollar software mantenible y escalable. Los principios SOLID son:
Single Responsibility Principle (Principio de Responsabilidad Única): Una clase debe tener una y solo una razón para cambiar. Esto significa que una clase debe tener una responsabilidad específica y no debería tener varias responsabilidades.
Open-Closed Principle (Principio Abierto-Cerrado): Una clase debe estar abierta para extensión y cerrada para modificación. Esto significa que una clase debe estar diseñada de tal manera que se pueda extender su funcionalidad mediante herencia o implementación de interfaces, sin tener que modificar su código existente.
Liskov Substitution Principle (Principio de Sustitución de Liskov): Un objeto de una subclase debe poder reemplazar a un objeto de su superclase. Esto significa que las subclases deben ser intercambiables con sus superclases sin afectar el correcto funcionamiento del software.
Interface Segregation Principle (Principio de Segregación de Interfaces): Un cliente no debe ser obligado a implementar interfaces que no utiliza. Esto significa que deben crearse interfaces específicas para cada cliente en lugar de crear interfaces generales con muchos métodos que no son necesarios para todos los clientes.
Dependency Inversion Principle (Principio de Inversión de Dependencias): Los módulos de alto nivel no deben depender de módulos de bajo nivel, ambos deben depender de abstracciones. Esto significa que el código debe estar diseñado de tal manera que los componentes de alto nivel no dependan directamente de componentes de bajo nivel, sino que ambos dependan de abstraccione