रैपर फ़ंक्शन

एक रैपर फ़ंक्शन एक पुस्तकालय (कम्प्यूटिंग) या एक कंप्यूटर प्रोग्राम में एक फ़ंक्शन (कंप्यूटर प्रोग्रामिंग) ('सबरूटीन' के लिए दूसरा शब्द) है जिसका मुख्य उद्देश्य दूसरे सबरूटीन को कॉल करना है या एक सिस्टम कॉल जिसमें बहुत कम या कोई अतिरिक्त संगणना नहीं है। रैपर फ़ंक्शंस का उपयोग सबरूटीन के अंतर्निहित कार्यान्वयन के विवरण को अमूर्त करके कंप्यूटर प्रोग्राम लिखने को आसान बनाने के लिए किया जाता है।

उद्देश्य
आवरण कार्य प्रत्यायोजन (प्रोग्रामिंग) का एक साधन है और इसका उपयोग कई उद्देश्यों के लिए किया जा सकता है।

प्रोग्रामिंग सुविधा
कंप्यूटर प्रोग्राम लिखने को आसान बनाने के लिए रैपर फ़ंक्शंस का उपयोग किया जा सकता है। इसका एक उदाहरण है  और जावा एडब्ल्यूटी लाइब्रेरी में समान कक्षाएं। रैपर फ़ंक्शंस उन अनुप्रयोगों के विकास में उपयोगी होते हैं जो तृतीय-पक्ष लाइब्रेरी फ़ंक्शंस का उपयोग करते हैं। प्रत्येक तीसरे पक्ष के कार्यों के लिए एक रैपर लिखा जा सकता है और मूल एप्लिकेशन में उपयोग किया जाता है। यदि तीसरे पक्ष के कार्यों में परिवर्तन होता है या अद्यतन किया जाता है, तो मूल अनुप्रयोग में केवल तृतीय पक्ष कार्यों के सभी उदाहरणों को बदलने के विरोध में मूल अनुप्रयोग में रैपर को संशोधित करने की आवश्यकता होती है।

क्लास/ऑब्जेक्ट इंटरफेस को बदलना
रैपर फ़ंक्शंस का उपयोग किसी मौजूदा वर्ग या ऑब्जेक्ट को एक अलग इंटरफ़ेस रखने के लिए एडेप्टर पैटर्न के लिए किया जा सकता है। मौजूदा लाइब्रेरी कोड का उपयोग करते समय यह विशेष रूप से उपयोगी होता है।

कोड परीक्षण
रैपर फ़ंक्शंस का उपयोग फ़ंक्शन के लिए प्रत्येक कॉल के लिए एक ही त्रुटि जांच को दोहराकर बड़ी मात्रा में कोड की लंबाई बढ़ाए बिना पूर्व-मौजूदा सिस्टम फ़ंक्शंस के लिए डीबगर रूटीन लिखने के लिए किया जा सकता है। मूल फ़ंक्शन के सभी कॉल को रैपर पर कॉल के साथ प्रतिस्थापित किया जा सकता है, जिससे प्रोग्रामर को रैपर लिखे जाने के बाद त्रुटि जाँच के बारे में भूलने की अनुमति मिलती है। एक परीक्षण चालक एक प्रकार का रैपर फ़ंक्शन है जो एक कोड मॉड्यूल का प्रयोग करता है, आमतौर पर इसे विभिन्न सेटिंग्स या पैरामीटर के साथ बार-बार कॉल करता है, ताकि प्रत्येक संभावित पथ को सख्ती से आगे बढ़ाया जा सके। यह डिलिवरेबल कोड नहीं है, लेकिन फेंका हुआ कोड भी नहीं है, जिसे आमतौर पर प्रतिगमन परीक्षण में उपयोग के लिए रखा जाता है। एक इंटरफ़ेस एडेप्टर एक प्रकार का रैपर फ़ंक्शन है जो उपयोगकर्ता के लिए इसे अधिक समझदार या प्रासंगिक बनाने के इरादे से एक कोड मॉड्यूल में इंटरफ़ेस को सरल, दर्जी या प्रवर्धित करता है। यह मापदंडों का नाम बदल सकता है, मापदंडों को जोड़ सकता है, मापदंडों के लिए डिफ़ॉल्ट सेट कर सकता है, और पसंद कर सकता है।

एकाधिक वंशानुक्रम
एक प्रोग्रामिंग भाषा में जो बेस क्लास के मल्टीपल इनहेरिटेंस को सपोर्ट नहीं करती है, रैपर फ़ंक्शंस का इस्तेमाल इसे अनुकरण करने के लिए किया जा सकता है। नीचे जावा (प्रोग्रामिंग भाषा) क्लास के एक हिस्से का उदाहरण दिया गया है जो लिंक्डलिस्ट और हैशसेट से विरासत में मिला है। अधिक कार्यान्वयन विवरण के लिए विधि (कंप्यूटर प्रोग्रामिंग) देखें। <वाक्यविन्यास प्रकाश लैंग = जावा> पब्लिक क्लास टेस्ट लिंक्डलिस्ट, हैशसेट को लागू करता है {

@Override // इसमें डेटा सदस्य और डेटा विधियाँ शामिल हैं // सहसंयोजक वापसी

} 

लाइब्रेरी फ़ंक्शंस और सिस्टम कॉल्स
कई मानक पुस्तकालय कार्य, जैसे कि सी मानक पुस्तकालय में, सिस्टम कॉल के अमूर्त (कंप्यूटर विज्ञान) आयन के लिए इंटरफ़ेस (कंप्यूटिंग) के रूप में कार्य करते हैं। glibc में fork और execve प्रकार्य इसके उदाहरण हैं। वे कम स्तर|लोअर-लेवल कांटा (ऑपरेटिंग सिस्टम) को कॉल करते हैं और सिस्टम कॉल को क्रमशः निष्पादित करते हैं।

यह समान रूप से नामित सिस्टम कॉल के बजाय उच्च-स्तरीय लाइब्रेरी कॉल को संदर्भित करने के लिए गलत तरीके से शब्द सिस्टम कॉल और सिस्कल का उपयोग कर सकता है, जिसे वे लपेटते हैं।

हेल्पर फंक्शन
एक सहायक कार्य एक ऐसा कार्य है जो वर्णनात्मक नाम निर्दिष्ट करके और गणनाओं के पुन: उपयोग की अनुमति देकर संगणना के कुछ हिस्सों को समूहित करता है। हालांकि सभी रैपर सहायक कार्य नहीं होते हैं, सभी सहायक कार्य रैपर होते हैं, और सहायक कार्यों का एक उल्लेखनीय उपयोग - समूहीकरण अक्सर उपयोग किए जाने वाले संचालन - Binary_translation#Dynamic_binary_translation में होता है, जिसमें मशीन कोड के अनुवाद में एक विशेष कंप्यूटर आर्किटेक्चर के सहायक कार्यों का उपयोग किया जाता है एक निर्देश दूसरे में आर्किटेक्चर सेट करता है।

यह भी देखें

 * रैपर लाइब्रेरी
 * चालक आवरण
 * एडेप्टर पैटर्न
 * डेकोरेटर पैटर्न
 * प्रतिनिधिमंडल (प्रोग्रामिंग)
 * अग्रेषण (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग)
 * भाषा बंधन आवरण दूसरी भाषा के लिए
 * घूंट स्वचालित आवरण जनरेटर
 * नेस्टेड समारोह
 * आंशिक आवेदन