Wrapper-funktion - Wrapper function

En omslagsfunktion är en subrutin (ett annat ord för en funktion ) i ett programbibliotek eller ett datorprogram vars huvudsakliga syfte är att anropa en andra subrutin eller ett systemanrop med liten eller ingen ytterligare beräkning. Wrapper-funktioner används för att göra skrivning av datorprogram enklare genom att abstrakta bort detaljerna i en underrutins underliggande implementering.

Ändamål

Wrapper-funktioner är ett delegeringsmedel och kan användas för ett antal ändamål.

Programmering bekvämlighet

Wrapper-funktioner kan användas för att underlätta skrivning av datorprogram. Ett exempel på detta är MouseAdapter och liknande klasser i Java AWT- biblioteket. Wrapper-funktioner är användbara vid utveckling av applikationer som använder biblioteksfunktioner från tredje part. Ett omslag kan skrivas för var och en av tredjepartsfunktionerna och användas i den ursprungliga applikationen. Om tredjepartsfunktionerna ändras eller uppdateras behöver endast omslagen i den ursprungliga applikationen ändras i motsats till att alla instanser av tredjepartsfunktioner i den ursprungliga applikationen ändras.

Anpassa klass / objektgränssnitt

Wrapper-funktioner kan användas för att anpassa en befintlig klass eller ett objekt till ett annat gränssnitt. Detta är särskilt användbart när du använder befintlig bibliotekskod.

Kodtestning

Wrapper-funktioner kan användas för att skriva rutiner för felkontroll för befintliga systemfunktioner utan att öka kodens längd med en stor mängd genom att upprepa samma felkontroll för varje samtal till funktionen. Alla samtal till den ursprungliga funktionen kan ersättas med samtal till omslaget, så att programmeraren kan glömma felkontrollen när omslaget har skrivits. En testdrivrutin är en slags omslagsfunktion som utövar en kodmodul, som vanligtvis anropar den upprepade gånger, med olika inställningar eller parametrar, för att strikt följa varje möjlig väg. Det är inte leveranskod, men är inte heller bortkastningskod, utan behålls vanligtvis för användning vid regressionstestning . En gränssnittsadapter är en typ av omslagsfunktion som förenklar, skräddarsyr eller förstärker gränssnittet till en kodmodul, med avsikten att göra det mer begripligt eller relevant för användaren. Det kan byta namn på parametrar, kombinera parametrar, ställa in standardvärden för parametrar och liknande.

Flera arv

På ett programmeringsspråk som inte stöder flera arv av basklasser kan omslagsfunktioner användas för att simulera det. Nedan följer ett exempel på en del av en Java- klass som "ärver" från LinkedList och HashSet. Se Metod för ytterligare implementeringsinformation.

public class Test implements LinkedList, HashSet{

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

}

Biblioteksfunktioner och systemanrop

Många biblioteksfunktioner , som de i C Standard Library , fungerar som gränssnitt för abstraktion av systemanrop . De gaffel och execve funktioner i glibc är exempel på detta. De kallar nedre nivå gaffel och utför systemanrop, respektive.

Detta kan leda till att begreppen "systemanrop" och "syscall" används felaktigt för att referera till högre nivåbibliotekssamtal snarare än de liknande namngivna systemanropen, som de slår in.

Se även

Referenser