Adapter programozási nyelvekhez
Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |
|
Ez a szócikk vagy szakasz lektorálásra, tartalmi javításokra szorul. |
A programozás és a szoftvertervezés során az adapter egy olyan felületet biztosít (API), amely biztosítja az idegen könyvtár vagy operációs rendszer szolgáltatásának használatát (amely nem az adott nyelven íródott).
Jellemzők
[szerkesztés]Az adapter általánosan az egyik dolognak a másikra való leképzését jelenti. A szoftverkönyvtárak esetében az adapterek úgynevezett csomagolókönyvtárak, melyek két programozási nyelvet hidalnak át, így az egyik nyelvre írt könyvtár más nyelven is használható. Számos szoftverkönyvtár íródott C vagy C++ nyelven. Az ilyen általában magasabb szintű nyelveken, mint például a Java, Common Lisp, Scheme, Python vagy Lua nyelvből származó könyvtárak használatához létre kell hozni a könyvtáradaptert, ami megkövetelheti a nyelv kódjának újrafordítását. Ugyanakkor a legtöbb nyelv idegen felületet kínál, mint például a Python és az OCaml’s típusait, valamint az Embeddable Common Lisp CFFI és UFFI fájljait.
Például a Python-adaptereket akkor használják, ha egy fennmaradó C-könyvtárat egy bizonyos cél megvalósítása érdekében írnak, és a Python-ból kell használni. Egy másik példa a libsvn, melyet C-ben írtak, hogy API-t biztosítson a Subversion szoftvertárolóhoz. A Subversion elérése egy Java-kódon belül a libsvnjavahl-lel történik, amely a libsvn telepítésétől függ, és egyfajta hídként szolgál a Java és a libsvn között, ezáltal biztosítva egy olyan API-t, amely a libsvn funkcióit meghívja a munka elvégzésére.
A könyvtári adapterek létrehozásának fő céljai közé tartozott a szoftver újrahasznosítása, a könyvtár több nyelvel történő újbóli telepítésének csökkentése, valamint az algoritmusok hatékony végrehajtása magas szintű nyelveken.