ehkä hieman outo kysymys eikä ehkä liity ohjelmointiin, mutta mitä tarkoitetaan englannin kielisellä sanalla wrapper? on tullut esiin muutamassa eri yhteydessä ja jäi mietityttämään :I
mikä on wrapper?
sdzuifhashoi
34760
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 3
Vanhimmat
api:n muuntamista toisenlaiseksti tai piilottamista, esim C kirjastolle voidaan tehdä C wrapperi, jolloin sitä käytetään olioina välitämättä alahaalla olevasta c koodista.
lontooksi:
http://en.wikipedia.org/wiki/Wrapper
Eikö wrapperi tarkoita ohjelmoinnissa kääreluokkaa. näin ainakin javasta muistelisin..
eli esimerkiksi jonkun tietotyypin voi muuttaa tolla olioksi? tai jotain sinne päin se oli :)
Yleisesti ohjelmoinnissa wrapperin parempi sana ehkä olisi suodatin (tai välikerros tulkki).
Otetaan esimerkki: olet löytänyt koodipätkän jostain joka laskee jotain, mutta se on USA:sta ja kaikki parametrien yksiköt ovat vääriä (jalkoja-metri, paunaa-kilogrammaa, 'Farenheit-'Celsius jne) ja se palauttaa myös tuloksen väärissä yksiköissä.
Voidakseen kuitenkin helposti hyödyntää sitä ilman että joka kertaa esim kutsussa joutuisit tekemään yksikkömuunnoksia, kirjoitat "wrapperin".
double oikeat_yksikot (double pituus, double paino)
{
//tätä funktiota käytän omissa ohjelmissa
//tämä funktio on wrapperi
double tulos; //tilavaraus laskentatulokselle, ei välttämätön
pituus = pituus/0.254; //muutetaan metrit jaloiksi
paino = paino/0.5; //muutetaan kilot paunoiksi
tulos = vaarat_yksikot (pituus, paino); //kutsutaan funktio jossa laskenta tehdään
tulos = tulos *3.457; // muutetaan tulos oikeaksi yksiköiksi
return tulos;
}
Tällä tavalla pystyt piiloittamaan "vaarat_yksikot" "oikeat_yksikot" siisään, "käärimään" sen wrapperiin.
Tämä esimerkki on äärimmäisen yksinkertaistettu. Ehkä tavallisin käyttökohde on kun haluat käyttää monta eri ohjelmointikieltä samassa sovelluksessa (C, Pascal, Fortran... välittävät kutsuparametreja eri tavalla.) tai yhdistää monta eri kirjastoa yhtenäisellä tavalla.