Wrapper function
एक रैपर फ़ंक्शन एक सॉफ्टवेयर लाइब्रेरी या एक कंप्यूटर प्रोग्राम में एक फ़ंक्शन (एक सबरूटीन के लिए एक और शब्द) है जिसका मुख्य उद्देश्य दूसरे सबरूटीन या एक सिस्टम कॉल को बहुत कम या बिना किसी अतिरिक्त गणना के कॉल करना है। रैपर फ़ंक्शंस का उपयोग कंप्यूटर प्रोग्राम लिखने को आसान बनाने के लिए किया जाता है, जिसमें सबरूटीन के अंतर्निहित कार्यान्वयन के विवरण को हटा दिया जाता है। पर्पस रैपर कार्य प्रत्यायोजन का एक साधन है और इसका उपयोग कई उद्देश्यों के लिए किया जा सकता है। प्रोग्रामिंग सुविधा रैपर कार्यों का उपयोग कंप्यूटर प्रोग्राम लिखने को आसान बनाने के लिए किया जा सकता है। इसका एक उदाहरण जावा ए. डब्ल्यू. टी. पुस्तकालय में माउस एडाप्टर और इसी तरह के वर्ग हैं। रैपर कार्य उन अनुप्रयोगों के विकास में उपयोगी हैं जो तृतीय-पक्ष पुस्तकालय कार्यों का उपयोग करते हैं। प्रत्येक तीसरे पक्ष के कार्यों के लिए एक आवरण लिखा जा सकता है और देशी अनुप्रयोग में उपयोग किया जा सकता है। यदि तृतीय पक्ष कार्य बदलते हैं या अद्यतन किए जाते हैं, तो मूल अनुप्रयोग में तृतीय पक्ष कार्य के सभी उदाहरणों को बदलने के विपरीत केवल मूल अनुप्रयोग में आवरण को संशोधित करने की आवश्यकता होती है। वर्ग/ऑब्जेक्ट इंटरफेस को अनुकूलित करने के लिए रैपर कार्यों का उपयोग किसी मौजूदा वर्ग या ऑब्जेक्ट को एक अलग इंटरफेस के लिए अनुकूलित करने के लिए किया जा सकता है। यह विशेष रूप से तब उपयोगी होता है जब मौजूदा पुस्तकालय कोड का उपयोग किया जाता है। कोड परीक्षण रैपर कार्यों का उपयोग पहले से मौजूद सिस्टम कार्यों के लिए त्रुटि जांच दिनचर्या लिखने के लिए किया जा सकता है, जिसमें कार्य के लिए प्रत्येक कॉल के लिए एक ही त्रुटि जांच को दोहराकर कोड की लंबाई को बड़ी मात्रा में बढ़ाया नहीं जा सकता है। मूल कार्य के लिए सभी कॉल को रैपर पर कॉल के साथ बदला जा सकता है, जिससे प्रोग्रामर रैपर लिखे जाने के बाद त्रुटि जांच के बारे में भूल जाता है। एक परीक्षण चालक एक प्रकार का आवरण कार्य है जो एक कोड मॉड्यूल का अभ्यास करता है, आमतौर पर इसे बार-बार कॉल करता है, विभिन्न सेटिंग्स या मापदंडों के साथ, ताकि प्रत्येक संभावित पथ को सख्ती से आगे बढ़ाया जा सके। यह डिलीवरेबल कोड नहीं है, लेकिन थ्रोअवे कोड भी नहीं है, जिसे आमतौर पर प्रतिगमन परीक्षण में उपयोग के लिए रखा जाता है। एक इंटरफेस एडाप्टर एक प्रकार का रैपर फ़ंक्शन है जो इंटरफेस को सरल बनाता है, एक कोड मॉड्यूल के लिए तैयार करता है, या इसे उपयोगकर्ता के लिए अधिक बोधगम्य या प्रासंगिक बनाने के इरादे से बढ़ाता है। यह मापदंडों का नाम बदल सकता है, मापदंडों को जोड़ सकता है, मापदंडों के लिए डिफ़ॉल्ट निर्धारित कर सकता है, और इसी तरह। एक प्रोग्रामिंग भाषा में जो आधार वर्गों की कई विरासत का समर्थन नहीं करती है, रैपर कार्यों का उपयोग इसे अनुकरण करने के लिए किया जा सकता है। नीचे जावा वर्ग के एक हिस्से का एक उदाहरण दिया गया है जो लिंक्डइन और हैशसेट से "विरासत में मिला" है। अधिक कार्यान्वयन विवरण के लिए विधि देखें। पब्लिक क्लास टेस्ट इम्प्लिमेंट्स लिंक्डइनलिस्ट, हैशसेट {@Override// में डेटा सदस्य और डेटा विधियाँ// कोवेरियंट रिटर्न} लाइब्रेरी कार्य और सिस्टम कॉल शामिल हैं कई लाइब्रेरी कार्य, जैसे कि सी स्टैंडर्ड लाइब्रेरी में, सिस्टम कॉल के अमूर्तता के लिए इंटरफेस के रूप में कार्य करते हैं। ग्लिब्स में कांटा और निष्पादन कार्य इसके उदाहरण हैं। वे क्रमशः निचले स्तर के कांटे और निष्पादन प्रणाली कॉल को कॉल करते हैं। इससे समान रूप से नामित सिस्टम कॉल के बजाय उच्च-स्तरीय लाइब्रेरी कॉल को संदर्भित करने के लिए "सिस्टम कॉल" और "सिसकॉल" शब्दों का गलत उपयोग हो सकता है, जिसे वे लपेटते हैं। सहायक फलन एक सहायक फलन है जो वर्णनात्मक नामों को निर्दिष्ट करके और गणनाओं के पुनः उपयोग की अनुमति देकर गणना के कुछ हिस्सों को समूहित करता है। हालांकि सभी रैपर सहायक कार्य नहीं हैं, सभी सहायक कार्य रैपर हैं, और सहायक कार्यों का एक उल्लेखनीय उपयोग-अक्सर उपयोग किए जाने वाले कार्यों को समूहबद्ध करना-गतिशील द्विआधारी अनुवाद में है, जिसमें एक विशेष वास्तुकला के सहायक कार्यों का उपयोग एक निर्देश से निर्देश के अनुवाद में किया जाता है। रैपर लाइब्रेरी ड्राइवर रैपर एडेप्टर पैटर्न डेकोरेटर पैटर्न डेलिगेशन (प्रोग्रामिंग) फॉरवर्डिंग (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) लैंग्वेज बाइंडिंग रैपर टू अदर लैंग्वेज एस. डब्ल्यू. आई. जी. ऑटोमैटिक रैपर जनरेटर नेस्टेड फंक्शन आंशिक अनुप्रयोग संदर्भ लेख उदाहरण के लिए जावा कोड सबरूटिन