Implementación del Principio de Segregación de Interfaces en Procesadores de Pago
Clase 10 de 27 • Curso de Patrones de Diseño y SOLID en Python
Contenido del curso
Principios SOLID
- 2

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

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

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

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

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

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

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

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

Implementación del Principio de Segregación de Interfaces en Procesadores de Pago
Viendo ahora - 11

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

Aplicación del Principio de Inversión de Dependencias en Python
05:56 min
Reestructuración del proyecto
Patrones de Diseño
- 14

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

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

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

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

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

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

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

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

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

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

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

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

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

Principios SOLID y Patrones de Diseño en Procesadores de Pago
03:19 min
Implementar el principio de segregación de interfaces es clave para mantener el código limpio y flexible en sistemas complejos como un procesador de pagos. En este caso, se abordaron varias mejoras dentro del procesador de pagos que incluyen la creación de métodos específicos para reembolsos y recurrencias, junto con la correcta segregación de las interfaces según las capacidades de cada procesador de pago.
¿Qué cambios se realizaron en el procesador de pagos?
- Se agregaron dos nuevos métodos: reembolso y creación de recurrencias.
- Se implementó un segundo procesador de pagos, el procesador offline, que simula pagos en efectivo. Sin embargo, este procesador no puede realizar reembolsos ni crear recurrencias.
- El método
processTransactionfue modificado para no depender del atributo de Stripe, ya que ahora hay múltiples procesadores.
¿Por qué falló la implementación del principio de segregación de interfaces?
El procesador de pagos offline implementaba métodos que no podía usar, como los reembolsos y las recurrencias, lo que violaba el principio de segregación de interfaces. Este principio establece que una clase no debe depender de métodos que no puede implementar o usar.
¿Cómo se corrigió el problema?
- Se crearon dos nuevos protocolos: uno para reembolsos (
RefundPaymentProtocol) y otro para recurrencias (RecurringPaymentProtocol). - Estos protocolos definen exclusivamente los métodos para esas acciones, eliminando la necesidad de que procesadores como el offline implementen métodos que no necesitan.
- Los procesadores que pueden realizar todas las acciones, como Stripe, ahora implementan los tres protocolos: uno para cobros, otro para reembolsos y otro para recurrencias.
¿Qué otros ajustes se hicieron en el servicio?
- Se agregaron atributos opcionales para los procesadores de reembolsos y de recurrencias (
RefundProcessoryRecurringProcessor), permitiendo que cada tipo de procesador maneje solamente las acciones que le corresponden. - Se implementaron validaciones para evitar excepciones en caso de que un procesador no soporte ciertas acciones. Si el procesador no soporta reembolsos o recurrencias, se lanza una excepción con un mensaje claro.
¿Cómo afecta este cambio al procesador de Stripe y al procesador offline?
- En el caso de Stripe, ahora maneja los tres protocolos, permitiendo cobrar, hacer reembolsos y gestionar pagos recurrentes.
- El procesador offline, al no manejar reembolsos ni recurrencias, ya no tiene que implementar esos métodos, cumpliendo con el principio de segregación de interfaces.