Articulo de referencia

Función de envoltura

Una función de envoltura es una función (otro término para subrutina ) en una biblioteca de software o un programa informático cuyo propósito principal es llamar a una segunda s...

Una función de envoltura es una función (otro término para subrutina ) en una biblioteca de software o un programa informático cuyo propósito principal es llamar a una segunda subrutina [ 1 ] o a una llamada al sistema con poca o ninguna computación adicional. Las funciones de envoltura simplifican la escritura de programas informáticos al abstraer los detalles de la implementación de una subrutina.

Objetivo

Las funciones contenedoras son un medio de delegación y pueden utilizarse para diversos fines.

Comodidad de programación

Las funciones de envoltura simplifican la escritura de programas informáticos. Por ejemplo, las MouseAdapterclases `<script>` y similares en la biblioteca Java AWT lo demuestran. [ 2 ] Son útiles en el desarrollo de aplicaciones que utilizan funciones de bibliotecas de terceros. Se puede escribir una envoltura para cada una de las funciones de terceros y utilizarla en la aplicación nativa. En caso de que las funciones de terceros cambien o se actualicen, solo es necesario modificar las envolturas en la aplicación nativa, en lugar de cambiar todas las instancias de las funciones de terceros en la aplicación nativa.

Adaptación de interfaces de clase/objeto

Las funciones envoltorio permiten adaptar una clase u objeto existente para que tenga una interfaz diferente. Esto resulta especialmente útil al utilizar código de bibliotecas ya existentes.

Pruebas de código

Las funciones de envoltura se pueden usar para escribir rutinas de verificación de errores para funciones del sistema preexistentes sin aumentar la longitud del código en gran medida al repetir la misma verificación de errores para cada llamada a la función. [ 3 ] Todas las llamadas a la función original se pueden reemplazar con llamadas a la envoltura, lo que permite al programador olvidarse de la verificación de errores una vez que la envoltura está escrita. Un controlador de prueba es un tipo de función de envoltura que ejercita un módulo de código, generalmente llamándolo repetidamente, con diferentes configuraciones o parámetros, para explorar rigurosamente cada ruta posible. No es código entregable, pero tampoco es código desechable, ya que generalmente se conserva para su uso en pruebas de regresión . Un adaptador de interfaz es un tipo de función de envoltura que simplifica, adapta o amplía la interfaz de un módulo de código, con la intención de hacerla más inteligible o relevante para el usuario. Puede cambiar el nombre de los parámetros, combinar parámetros, establecer valores predeterminados para los parámetros, etc.

Herencia múltiple

En un lenguaje de programación que no admite la herencia múltiple de clases base, se pueden usar funciones envoltorio para simularla. A continuación se muestra un ejemplo de parte de una clase Java que "hereda" de java.util.LinkedListy java.util.HashSet. Consulte el método para obtener más detalles de implementación.

importar java.util.HashSet ; importar java.util.LinkedList ;public class Test implements LinkedList , HashSet { @Override // contiene miembros de datos y métodos de datos // retorno covariante }

Funciones de biblioteca y llamadas al sistema

Muchas funciones de biblioteca , como las de la biblioteca estándar de C , actúan como interfaces para la abstracción de llamadas al sistema . Las funciones fork y execve de glibc son ejemplos de ello. Llaman a las funciones de bajo nivel fork y execve , respectivamente.

Esto puede llevar a utilizar incorrectamente los términos "llamada al sistema" y "llamada al sistema" para referirse a llamadas a bibliotecas de nivel superior en lugar de a las llamadas al sistema de nombre similar, a las que encapsulan. [ 4 ] [ 5 ]

Función auxiliar

Una función auxiliar es una función que agrupa partes de un cálculo asignándoles nombres descriptivos y permitiendo la reutilización de los cálculos. [ 6 ] Aunque no todos los envoltorios son funciones auxiliares, todas las funciones auxiliares lo son, y un uso notable de las funciones auxiliares —agrupar operaciones de uso frecuente— es la traducción binaria dinámica , en la que las funciones auxiliares de una arquitectura particular se utilizan para traducir instrucciones de un conjunto de instrucciones a otro. [ 7 ]

Véase también

Referencias

  1. Reselman, Bob; Peasley, Richard; Pruchniak, Wayne (1998). Uso de Visual Basic 6. Que. pág.  446. ISBN 9780789716330.
  2. Los tutoriales de Java
  3. Stevens, Richard; Fenner, Bill; Rudoff; Andrew M. (2003). Programación de redes UNIX . Addison-Wesley. págs. 5–6 , 29. ISBN  9780131411555.
  4. "syscalls(2) - Página del manual de Linux" . man7.org . Consultado el 25 de abril de 2020 .
  5. "Llamadas al sistema (La biblioteca C de GNU)" . www.gnu.org . Consultado el 25 de abril de 2020 .
  6. Fisler, Kathi (2005). "CS 1101: Funciones auxiliares" . Instituto Politécnico de Worcester . Archivado del original el 7 de mayo de 2021. Recuperado el 17 de noviembre de 2021 .
  7. Wang, Wenwen (3 de marzo de 2021). Inserción de funciones auxiliares en la traducción binaria dinámica . CC: Compiler Construction. Nueva York, Estados Unidos: Association for Computing Machinery . pág. 107. doi : 10.1145/3446804.3446851 . ISBN  978-1-4503-8325-7.