आवरण समारोह

From alpha
Jump to navigation Jump to search

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

उद्देश्य

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

प्रोग्रामिंग सुविधा

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

कक्षा/ऑब्जेक्ट इंटरफेस को अनुकूलित करना

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

कोड परीक्षण

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

एकाधिक वंशानुक्रम

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

public class Test implements LinkedList, HashSet{

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

}


लाइब्रेरी फ़ंक्शंस और सिस्टम कॉल

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

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


सहायक फ़ंक्शन

हेल्पर फ़ंक्शन एक ऐसा फ़ंक्शन है जो वर्णनात्मक नाम निर्दिष्ट करके और गणनाओं के पुन: उपयोग की अनुमति देकर गणना के कुछ हिस्सों को समूहित करता है।[6] हालाँकि सभी रैपर सहायक कार्य नहीं हैं, सभी सहायक कार्य रैपर हैं, और सहायक कार्यों का एक उल्लेखनीय उपयोग - अक्सर उपयोग किए जाने वाले संचालन को समूहीकृत करना - बाइनरी_ट्रांसलेशन # डायनामिक_बाइनरी_ट्रांसलेशन में है, जिसमें एक विशेष कंप्यूटर आर्किटेक्चर के सहायक कार्यों का उपयोग मशीन कोड के अनुवाद में किया जाता है। एक निर्देश ने दूसरे में आर्किटेक्चर सेट किया।[7]


यह भी देखें

संदर्भ

  1. Reselman, Bob; Peasley, Richard; Pruchniak, Wayne (1998). Using Visual Basic 6. Que. p. 446. ISBN 9780789716330.
  2. The Java Tutorials
  3. Stevens, Richard; Fenner, Bill; Rudoff; Andrew M. (2003). यूनिक्स नेटवर्क प्रोग्रामिंग. Addison-Wesley. pp. 5–6, 29. ISBN 9780131411555.
  4. "syscalls(2) - Linux manual page". man7.org. Retrieved 2020-04-25.
  5. "सिस्टम कॉल (जीएनयू सी लाइब्रेरी)". www.gnu.org. Retrieved 2020-04-25.
  6. Fisler, Kathi (2005). "CS 1101: Helper functions". Worcester Polytechnic Institute. Archived from the original on 7 May 2021. Retrieved 17 November 2021.
  7. Wang, Wenwen (3 March 2021). गतिशील बाइनरी अनुवाद में हेल्पर फ़ंक्शन इनलाइनिंग. CC: Compiler Construction. New York, United States: Association for Computing Machinery. p. 107. doi:10.1145/3446804.3446851. ISBN 978-1-4503-8325-7.