इंटरफ़ेस (कंप्यूटिंग)

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

हार्डवेयर इंटरफेस


हार्डवेयर इंटरफेस कई घटकों में मौजूद होते हैं, जैसे कि विभिन्न बस (कंप्यूटिंग), कंप्यूटर डेटा भंडारण, अन्य I/O डिवाइस आदि। एक हार्डवेयर इंटरफेस को इंटरफेस पर मैकेनिकल, इलेक्ट्रिकल और लॉजिकल सिग्नल और अनुक्रमण के लिए प्रोटोकॉल द्वारा वर्णित किया जाता है। उन्हें (कभी-कभी सिग्नलिंग कहा जाता है)। एक मानक इंटरफ़ेस, जैसे SCSI, कंप्यूटिंग हार्डवेयर के डिज़ाइन और परिचय को अलग करता है, जैसे कि I/O डिवाइस, कंप्यूटिंग सिस्टम के अन्य घटकों के डिज़ाइन और परिचय से, जिससे उपयोगकर्ताओं और निर्माताओं को कंप्यूटिंग सिस्टम के कार्यान्वयन में बहुत लचीलापन मिलता है।. हार्डवेयर इंटरफेस डेटा के कुछ हिस्सों को एक साथ ले जाने वाले कई विद्युत कनेक्शनों के साथ समानांतर संचार हो सकता है या सीरियल संचार जहां डेटा एक समय में एक अंश भेजा जाता है।

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

व्यवहार में
डिजाइन का एक प्रमुख सिद्धांत डिफ़ॉल्ट रूप से सभी संसाधनों तक पहुंच को प्रतिबंधित करना है, केवल अच्छी तरह से परिभाषित प्रवेश बिंदुओं, यानी इंटरफेस के माध्यम से पहुंच की अनुमति देना। सॉफ्टवेयर इंटरफेस अंतर्निहित कंप्यूटर सिस्टम के कंप्यूटर संसाधनों (जैसे मेमोरी, सीपीयू, स्टोरेज, आदि) तक पहुंच प्रदान करते हैं; सॉफ्टवेयर द्वारा ऐसे संसाधनों तक सीधी पहुंच (यानी, अच्छी तरह से डिज़ाइन किए गए इंटरफेस के माध्यम से नहीं) में कार्यक्षमता और स्थिरता के लिए प्रमुख प्रभाव पड़ सकते हैं - कभी-कभी विनाशकारी। सॉफ्टवेयर घटकों के बीच इंटरफेस निरंतर (कंप्यूटर विज्ञान) एस, डेटा प्रकार, सबरूटीन्स के प्रकार, अपवाद हैंडलिंग विनिर्देशों और विधि हस्ताक्षर प्रदान कर सकते हैं। कभी-कभी, सार्वजनिक चर (प्रोग्रामिंग) को एक इंटरफ़ेस के भाग के रूप में भी परिभाषित किया जाता है। एक सॉफ्टवेयर मॉड्यूल ए का इंटरफ़ेस जानबूझकर उस मॉड्यूल के कार्यान्वयन (कंप्यूटर विज्ञान) से अलग से परिभाषित किया गया है। उत्तरार्द्ध में इंटरफ़ेस में वर्णित प्रक्रियाओं और विधियों का वास्तविक कोड, साथ ही साथ अन्य निजी चर, प्रक्रियाएं आदि शामिल हैं। एक अन्य सॉफ्टवेयर मॉड्यूल बी, उदाहरण के लिए क्लाइंट (कंप्यूटिंग) से ए, जो ए के साथ इंटरैक्ट करता है, करने के लिए मजबूर है तो केवल प्रकाशित इंटरफेस के माध्यम से। इस व्यवस्था का एक व्यावहारिक लाभ यह है कि A के कार्यान्वयन को उसी इंटरफ़ेस के दूसरे कार्यान्वयन के साथ बदलने से B को विफल नहीं होना चाहिए - कैसे A आंतरिक रूप से इंटरफ़ेस की आवश्यकताओं को पूरा करता है, B के लिए प्रासंगिक नहीं है, जो विशिष्टताओं के साथ चिंताओं को अलग करता है। अंतरपटल। (लिस्कोव प्रतिस्थापन सिद्धांत भी देखें।)

वस्तु-उन्मुख भाषाओं में
कुछ वस्तु-उन्मुख भाषाओं में, विशेष रूप से वे जिनमें पूर्ण एकाधिक वंशानुक्रम नहीं है, इंटरफ़ेस शब्द का उपयोग सार डेटा प्रकार को परिभाषित करने के लिए किया जाता है जिसमें कोई डेटा नहीं होता है लेकिन व्यवहार को विधि (कंप्यूटर विज्ञान) हस्ताक्षर के रूप में परिभाषित करता है। एक वर्ग (कंप्यूटर विज्ञान) जिसमें उस इंटरफ़ेस से संबंधित सभी विधियों के लिए कोड और डेटा होता है और ऐसा घोषित करना उस इंटरफ़ेस को लागू करने के लिए कहा जाता है। इसके अलावा, एकल-विरासत-भाषाओं में भी, कोई भी कई इंटरफेस लागू कर सकता है, और इसलिए एक ही समय में विभिन्न प्रकार के हो सकते हैं। एक इंटरफ़ेस इस प्रकार एक डेटा प्रकार की परिभाषा है; कहीं भी एक वस्तु का आदान-प्रदान किया जा सकता है (उदाहरण के लिए, एक फ़ंक्शन (कंप्यूटर विज्ञान) या विधि (कंप्यूटर विज्ञान) कॉल में) आदान-प्रदान की जाने वाली वस्तु के प्रकार को उसके कार्यान्वित इंटरफेस या बेस-क्लास के बजाय परिभाषित किया जा सकता है विशिष्ट वर्ग (कंप्यूटर विज्ञान) निर्दिष्ट करना। इस दृष्टिकोण का अर्थ है कि इंटरफ़ेस लागू करने वाले किसी भी वर्ग का उपयोग किया जा सकता है। उदाहरण के लिए, अंतिम कार्यान्वयन उपलब्ध होने से पहले विकास को प्रगति की अनुमति देने के लिए एक कंकाल (कंप्यूटर प्रोग्रामिंग) का उपयोग किया जा सकता है। एक अन्य मामले में, एक परीक्षण-संचालित विकास#नकली, नकली और एकीकरण परीक्षण कार्यान्वयन को परीक्षण के दौरान प्रतिस्थापित किया जा सकता है। इस तरह के विधि स्टब कार्यान्वयन को बाद में विकास प्रक्रिया में वास्तविक कोड से बदल दिया जाता है।

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

हालाँकि इंटरफ़ेस में कई विधियाँ हो सकती हैं, उनमें केवल एक या कोई भी नहीं हो सकती है। उदाहरण के लिए, जावा (प्रोग्रामिंग भाषा) भाषा इंटरफ़ेस को परिभाषित करती है जिसमें सिंगल है  तरीका; विभिन्न उद्देश्यों के लिए विभिन्न कार्यान्वयनों का उपयोग किया जाता है, जिनमें शामिल हैं, , , , और. मार्कर इंटरफ़ेस पैटर्न जैसे इसमें कोई विधि नहीं है और प्रतिबिंब (कंप्यूटर प्रोग्रामिंग) का उपयोग करके सामान्य प्रसंस्करण के लिए रन-टाइम जानकारी प्रदान करने के लिए सेवा प्रदान करता है।

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

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

यह भी देखें

 * अमूर्त उलटा
 * अनुप्रयोग बाइनरी इंटरफ़ेस
 * अप्लिकेशन प्रोग्रामिंग अंतरफलक
 * बिजनेस इंटरोऑपरेबिलिटी इंटरफेस
 * कंप्यूटर बस
 * हार्ड डिस्क ड्राइव इंटरफ़ेस
 * कार्यान्वयन (कंप्यूटर विज्ञान)
 * कार्यान्वयन विरासत
 * इंटरऑपरेबिलिटी
 * वंशानुक्रम शब्दार्थ
 * मॉड्यूलर प्रोग्रामिंग
 * सॉफ्टवेयर घटक
 * आभासी विरासत

इस पेज में लापता आंतरिक लिंक की सूची

 * धारावाहिक संचार
 * विधि (कंप्यूटर विज्ञान)
 * एक्सेप्शन हेंडलिंग
 * डाटा प्रकार
 * चिंताओ का विभाजन
 * कक्षा (कंप्यूटर विज्ञान)
 * वस्तु के उन्मुख
 * समारोह (कंप्यूटर विज्ञान)
 * विधि ठूंठ
 * नियंत्रण का उलटा
 * बिजनेस इंटरऑपरेबिलिटी इंटरफेस