Call/Return Pattern

Patrón Llamada/Retorno

El patrón Llamada/Retorno (Call/Return en inglés) es un patrón de diseño de software fundamental que define cómo los componentes de software interactúan entre sí. Se basa en la idea de que un componente (el llamador) inicia una interacción con otro componente (el objetivo) al "llamarlo" y proporcionándole información o solicitando un servicio. El componente objetivo procesa la solicitud y devuelve un resultado o valor al llamador, completando así la interacción.

Principios clave:

  1. Encapsulación: El patrón promueve la encapsulación ocultando los detalles de implementación del componente objetivo al llamador. El llamador solo interactúa con la interfaz definida del objetivo, lo que aumenta la modularidad y reduce el acoplamiento.

  2. Abstracción: El patrón abstrae la complejidad de la interacción, permitiendo al llamador enfocarse en lo que quiere lograr sin preocuparse por cómo se hace. Esto simplifica el código y mejora la legibilidad.

  3. Sincronización: El patrón proporciona un mecanismo de sincronización básico entre el llamador y el objetivo. El llamador espera la devolución del objetivo antes de continuar, asegurando la integridad de los datos y la secuencia correcta de operaciones.

Beneficios:

  • Mayor modularidad: Los componentes se diseñan como unidades independientes, lo que facilita su desarrollo, prueba y mantenimiento.
  • Mayor claridad y mantenibilidad: La encapsulación y abstracción mejoran la legibilidad y comprensión del código.
  • Mayor reutilización de código: Las funcionalidades comunes se pueden encapsular en componentes y reutilizarse en diferentes partes del sistema.
  • Mayor facilidad de prueba: Los componentes se pueden probar de forma aislada.
  • Menor acoplamiento: Las dependencias entre componentes se minimizan, lo que aumenta la robustez del sistema.

Ejemplos comunes:

  • Llamadas a funciones: La mayoría de los lenguajes de programación admiten llamadas a funciones, donde una función llama a otra y espera que esta le devuelva un valor.

  • APIs: Las interfaces de programación de aplicaciones (APIs) se basan en el patrón Llamada/Retorno para permitir que los desarrolladores interactúen con servicios y funcionalidades proporcionadas por otros sistemas.

  • Sistemas operativos: Los sistemas operativos utilizan el patrón Llamada/Retorno para gestionar las interacciones entre las aplicaciones y los recursos del sistema, como la memoria, los archivos y los dispositivos de entrada/salida.

El patrón Llamada/Retorno es un pilar fundamental en el diseño de software, proporcionando un mecanismo simple y efectivo para la comunicación entre componentes. Es utilizado en una amplia gama de aplicaciones, desde pequeños scripts hasta grandes sistemas empresariales.

Ejemplo.

Figura 2.

Considere el ejemplo de un diseño secuencial con instancia de las clases de cuenta corriente y cuenta de ahorro (Figura 2). Cada objeto proporciona operaciones de crédito y débito, que pueden ser invocadas por los objetos Administrador de transacciones de retiro o Administrador de transacciones de transferencia. El Administrador de transacciones de retiro invoca la operación de débito de cualquiera de los objetos de cuenta con parámetros de entrada que consisten en el número de cuenta y el monto del retiro. La operación readBalance, devuelve el saldo de la cuenta después del retiro. Para procesar una solicitud de transferencia, el Administrador de transacciones de transferencia invoca la operación de débito de una cuenta (con el número de cuenta y el monto del débito como parámetros) y la operación de crédito de la otra cuenta (con el número de cuenta y el monto del crédito como parámetros).


Comentarios

Entradas más populares de este blog

Layers of Abstraction Architectural Pattern

Antipatrones de diseño de software

Asynchronous Message Communication Pattern