Função Wrapper - Wrapper function

Uma função wrapper é uma sub - rotina (outra palavra para uma função ) em uma biblioteca de software ou um programa de computador cujo objetivo principal é chamar uma segunda sub-rotina ou uma chamada de sistema com pouca ou nenhuma computação adicional. As funções de wrapper são usadas para facilitar a escrita de programas de computador, abstraindo os detalhes da implementação subjacente de uma sub-rotina.

Propósito

As funções de wrapper são um meio de delegação e podem ser usadas para vários fins.

Conveniência de programação

As funções de wrapper podem ser usadas para facilitar a escrita de programas de computador. Um exemplo disso são as MouseAdapter classes e classes semelhantes na biblioteca Java AWT . As funções de wrapper são úteis no desenvolvimento de aplicativos que usam funções de biblioteca de terceiros. Um wrapper pode ser escrito para cada uma das funções de terceiros e usado no aplicativo nativo. No caso de as funções de terceiros serem alteradas ou atualizadas, apenas os wrappers no aplicativo nativo precisam ser modificados, ao invés de alterar todas as instâncias de funções de terceiros no aplicativo nativo.

Adaptando interfaces de classe / objeto

As funções de wrapper podem ser usadas para adaptar uma classe ou objeto existente para ter uma interface diferente. Isso é especialmente útil ao usar o código de biblioteca existente.

Teste de código

As funções de wrapper podem ser usadas para escrever rotinas de verificação de erros para funções de sistema pré-existentes sem aumentar muito o comprimento de um código, repetindo a mesma verificação de erro para cada chamada para a função. Todas as chamadas para a função original podem ser substituídas por chamadas para o wrapper, permitindo que o programador esqueça a verificação de erros assim que o wrapper for escrito. Um driver de teste é um tipo de função wrapper que exercita um módulo de código, normalmente chamando-o repetidamente, com diferentes configurações ou parâmetros, a fim de seguir rigorosamente cada caminho possível. Não é um código entregue, mas também não é um código descartável, sendo normalmente retido para uso em testes de regressão . Um adaptador de interface é um tipo de função wrapper que simplifica, adapta ou amplifica a interface para um módulo de código, com a intenção de torná-la mais inteligível ou relevante para o usuário. Ele pode renomear parâmetros, combinar parâmetros, definir padrões para parâmetros e assim por diante.

Herança múltipla

Em uma linguagem de programação que não oferece suporte a herança múltipla de classes base, as funções de wrapper podem ser usadas para simulá-la. Abaixo está um exemplo de parte de uma classe Java que "herda" de LinkedList e HashSet. Consulte Método para obter mais detalhes de implementação.

public class Test implements LinkedList, HashSet{

@Override
//contains data members and data methods
//covariant return

}

Funções de biblioteca e chamadas de sistema

Muitas funções de biblioteca , como as da Biblioteca C Standard , atuam como interfaces para abstração de chamadas do sistema . As funções fork e execve na glibc são exemplos disso. Eles chamam a bifurcação de nível inferior e chamadas de sistema execvas , respectivamente.

Isso pode levar ao uso incorreto dos termos "chamada do sistema" e "syscall" para se referir a chamadas de biblioteca de nível superior, em vez de chamadas de sistema com nomes semelhantes, que elas envolvem.

Veja também

Referências