Principio de Responsabilidad Única en Desarrollo de Software
Clase 2 de 27 • Curso de Patrones de Diseño y SOLID en Python
Contenido del curso
- 2

Principio de Responsabilidad Única en Desarrollo de Software
05:59 - 3

Procesador de Pagos con Principios SOLID y Stripe
11:14 - 4

Aplicación del Principio de Responsabilidad Única en Procesador de Pagos
25:30 - 5

Principio Abierto-Cerrado en Desarrollo de Software
02:39 - 6

Implementación del Principio Abierto-Cerrado en Procesadores de Pago y Notificadores
14:46 - 7

Principio de Sustitución de Liskov en Desarrollo de Software
03:18 - 8

Aplicación del Principio de Sustitución de Liskov en Python
06:44 - 9

Principio de Segregación de Interfaces en Software
02:33 - 10

Implementación del Principio de Segregación de Interfaces en Procesadores de Pago
09:06 - 11

Principio de Inversión de Dependencias en Software
04:23 - 12

Aplicación del Principio de Inversión de Dependencias en Python
05:56
- 14

Introducción a los Patrones de Diseño de Software
03:54 - 15

Patrón Strategy en Diseño de Software con Python
01:55 - 16

Implementación del Strategy Pattern en Procesador de Pagos en Python
10:58 - 17

Patrón Factory Pattern en Python: Creación de Objetos Dinámicos
03:05 - 18

Patrón Factory en Procesadores de Pago en Python
11:06 - 19

Patrón Decorador: Añadir Responsabilidades Dinámicas a Objetos
03:06 - 20

Aplicación del Patrón Decorador en Servicios de Pago
12:57 - 21

Patrón de Diseño Builder: Construcción de Objetos Complejos
01:28 - 22

Builder Pattern para Servicio de Pagos en Python
18:55 - 23

Patrón Observer: Gestión de Eventos y Notificaciones Automáticas
01:48 - 24

Patrón Observer en Sistemas de Pago: Implementación y Notificaciones
11:12 - 25

Patrón Chain of Responsibility en Validación de Pagos
02:04 - 26

Implementación del patrón Chain of Responsibility en validaciones de pago
16:27 - 27

Principios SOLID y Patrones de Diseño en Procesadores de Pago
03:19
El principio de responsabilidad única es uno de los pilares de la construcción de software, establecido por Robert C. Martin. Este principio indica que una clase o función debe tener solo una razón para cambiar, lo que mejora la mantenibilidad y reduce la complejidad. Implementarlo no solo facilita las pruebas unitarias, sino que también incrementa la reutilización del código y disminuye el acoplamiento, promoviendo un sistema más cohesivo y fácil de escalar.
¿Qué implica el principio de responsabilidad única?
- Responsabilidad única: Una clase o función debe encargarse de una única tarea, lo que evita que se ocupe de múltiples aspectos.
- Razón para cambiar: El código debe tener una única causa para ser modificado, asegurando que los cambios sean claros y controlados.
¿Qué problemas soluciona este principio?
- Mantener el código: Al dividir responsabilidades, el código se vuelve más fácil de mantener y más económico de modificar.
- Reutilización del código: Las funciones con una única responsabilidad pueden ser utilizadas en diferentes contextos sin necesidad de duplicar código.
- Pruebas unitarias más simples: Las funciones con responsabilidades bien definidas son más fáciles de probar, reduciendo la carga de trabajo en el desarrollo.
¿Cómo saber cuándo aplicar el principio de responsabilidad única?
- Múltiples razones para cambiar: Si una clase o función tiene varias razones para ser modificada, es un buen indicio de que tiene más responsabilidades de las que debería.
- Alta complejidad y difícil mantenimiento: Si se encuentra complicado añadir nuevas funcionalidades o corregir errores, es probable que la falta de una clara definición de responsabilidades esté afectando el código.
- Dificultad para realizar pruebas unitarias: Si preparar una prueba implica mucho trabajo o configurar demasiados elementos, es señal de que el principio no se está siguiendo correctamente.
- Duplicación de código: Si una funcionalidad, como una validación, está replicada en varios lugares, se debería extraer a una única función y reutilizarla donde sea necesario.
¿Qué hacer cuando encuentras duplicación de responsabilidades?
Cuando se identifica la duplicación de código o responsabilidades mal distribuidas, el enfoque ideal es reorganizar ese código en una función específica que pueda ser reutilizada en todos los puntos necesarios. Esto no solo reduce el trabajo redundante, sino que también asegura que los cambios futuros se realicen en un solo lugar.