Jonaifry Rodriguez De Jesus
2024-0082
Principios SOLID
Programacion orientada a objetos
Luis Soto
10/28/2024
Origen y significado de SOLID
El acrónimo SOLID se originó a partir de los primeros principios de diseño de software
promovidos por Robert C. Martin, también conocido como ‘Uncle Bob’. Estos principios son
una guía para escribir software que sea fácil de entender, mantener y extender. El término
SOLID engloba cinco principios fundamentales:
• Single Responsibility Principle (SRP)
• Open/Closed Principle (OCP)
• Liskov Substitution Principle (LSP)
• Interface Segregation Principle (ISP)
• Dependency Inversion Principle (DIP)
Importancia de SOLID en el desarrollo de software
Los principios SOLID ayudan a desarrollar código que es modular y adaptable al cambio, lo
que permite una evolución continua y simplifica la localización de errores. Siguiendo estos
principios, los desarrolladores pueden reducir el riesgo de crear código "frágil", difícil de
escalar o propenso a fallos al realizar cambios.
2
Principios SOLID
1. Single Responsibility Principle (SRP)
Cada clase o módulo debe tener una única razón para cambiar, lo que significa que debe
cumplir solo una responsabilidad. Este principio simplifica la estructura de una clase y
permite localizar problemas en responsabilidades específicas.
Ejemplo
3
2. Open/Closed Principle (OCP)
Las clases deben estar abiertas para su extensión, pero cerradas para su modificación, lo que
significa que debemos poder añadir nuevas funcionalidades sin cambiar el código existente.
Ejemplo:
3
3. Liskov Substitution Principle (LSP)
Las subclases deben ser intercambiables por sus superclases sin alterar el comportamiento
del programa. Esto implica que las subclases deben mantener la misma lógica de sus clases
base.
Ejemplo:
4
4
4. Interface Segregation Principle (ISP)
Una clase no debe estar forzada a implementar interfaces que no utiliza. Es preferible dividir
una interfaz grande en interfaces más pequeñas y específicas para cada grupo de
funcionalidades.
Ejemplo:
5
5. Dependency Inversion Principle (DIP)
Los módulos de alto nivel no deben depender de módulos de bajo nivel, sino que ambos
deben depender de abstracciones. Además, las abstracciones no deben depender de los
detalles, sino los detalles de las abstracciones.
Ejemplo:
6
Ejemplo práctico integrando los principios SOLID
Aquí aplicamos:
1. SRP: Order solo gestiona información del pedido; IPaymentProcessor gestiona el
pago.
2. OCP: Podemos crear nuevos métodos de pago sin modificar Order.
3. LSP: CreditCardPaymentProcessor es intercambiable por cualquier otro
IPaymentProcessor.
7
4. ISP: Las interfaces son específicas y no obligan a los objetos a implementar métodos
innecesarios.
5. DIP: Order depende de IPaymentProcessor, una abstracción, en lugar de una clase
concreta.