stringtranslate.com

Función contenedora

Una función contenedora es una función (otra palabra para subrutina ) en una biblioteca de software o un programa de computadora cuyo objetivo principal es llamar a una segunda subrutina [1] o una llamada al sistema con poco o ningún cálculo adicional. Las funciones contenedoras 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 usarse para varios propósitos.

Comodidad de programación

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

Adaptación de interfaces clase/objeto

Las funciones contenedoras se pueden utilizar para adaptar una clase u objeto existente para que tenga una interfaz diferente. Esto es especialmente útil cuando se utiliza código de biblioteca existente.

Prueba de código

Las funciones contenedoras se pueden utilizar para escribir rutinas de verificación de errores para funciones del sistema preexistentes sin aumentar en gran medida la longitud de un código repitiendo 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 al contenedor, lo que permite al programador olvidarse de la verificación de errores una vez que se escribe el contenedor. Un controlador de prueba es una especie de función contenedora que ejercita un módulo de código, normalmente llamándolo repetidamente, con diferentes configuraciones o parámetros, para seguir rigurosamente cada camino posible. No es código entregable, pero tampoco es código desechable, ya que normalmente se conserva para su uso en pruebas de regresión . Un adaptador de interfaz es un tipo de función contenedora que simplifica, adapta o amplifica 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, combinarlos, establecer valores predeterminados para los parámetros y similares.

herencia múltiple

En un lenguaje de programación que no admite la herencia múltiple de clases base, se pueden utilizar funciones contenedoras para simularla. A continuación se muestra un ejemplo de parte de una clase Java que "hereda" de LinkedList y HashSet. Consulte Método para obtener más detalles de implementación.

La prueba de clase pública implementa 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 en glibc son ejemplos de esto. Llaman a las llamadas al sistema fork y execve de nivel inferior , respectivamente.

Esto puede llevar al uso incorrecto de los términos "llamada al sistema" y "llamada al sistema" para referirse a llamadas a bibliotecas de nivel superior en lugar de llamadas al sistema con nombres similares, que envuelven. [4] [5]

Función auxiliar

Una función auxiliar es una función que agrupa partes de un cálculo asignando nombres descriptivos y permitiendo la reutilización de los cálculos. [6] Aunque no todos los contenedores son funciones auxiliares, todas las funciones auxiliares son contenedores, y un uso notable de las funciones auxiliares (que agrupan operaciones utilizadas con frecuencia) es la traducción binaria dinámica , en la que las funciones auxiliares de una arquitectura particular se utilizan en la traducción de instrucciones. de un conjunto de instrucciones a otro. [7]

Ver también

Referencias

  1. ^ Reselman, Bob; Peasley, Richard; Pruchniak, Wayne (1998). Usando Visual Basic 6. Que. pag. 446.ISBN​ 9780789716330.
  2. ^ Los tutoriales de Java
  3. ^ Stevens, Ricardo; Fenner, Bill; Rudoff; Andrés 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 GNU C)". www.gnu.org . Consultado el 25 de abril de 2020 .
  6. ^ Fisler, Kathi (2005). "CS 1101: funciones auxiliares". Instituto Politécnico de Worcester . Archivado desde el original el 7 de mayo de 2021 . Consultado el 17 de noviembre de 2021 .
  7. ^ Wang, Wenwen (3 de marzo de 2021). Función auxiliar incorporada en la traducción binaria dinámica. CC: Construcción del compilador. Nueva York, Estados Unidos: Asociación de Maquinaria de Computación . pag. 107. doi : 10.1145/3446804.3446851. ISBN 978-1-4503-8325-7.