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

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{short description|Concept of computer science; point of interaction between two things}}
{{short description|Concept of computer science; point of interaction between two things}}
{{Refimprove|date=May 2010}}
{{Refimprove|date=May 2010}}
कंप्यूटिंग में, एक इंटरफ़ेस एक साझा सीमा होती है, जिसमें [[कंप्यूटर प्रणाली]] के दो या दो से अधिक अलग-अलग घटक सूचनाओं का आदान-प्रदान करते हैं। एक्सचेंज [[सॉफ्टवेयर]], [[कम्पुटर के वो भाग जिसे छूकर मेहसूस किया जा सके|कंप्यूटर हार्डवेयर]], [[परिधीय]] उपकरणों, [[प्रयोक्ता इंटरफ़ेस]], मनुष्यों और इनके संयोजन के बीच हो सकता है।<ref name="HookwayInterface14">{{cite book |url=https://books.google.com/books?id=BQM_AwAAQBAJ |chapter=Chapter 1: The Subject of the इंटरफेस|title=इंटरफेस|author=Hookway, B. |publisher=MIT Press |pages=1–58 |year=2014 |isbn=9780262525503}}</ref> कुछ कंप्यूटर हार्डवेयर उपकरणों, जैसे [[टच स्क्रीन]], इंटरफ़ेस के माध्यम से डेटा भेज और प्राप्त कर सकते हैं, जबकि अन्य जैसे माउस या माइक्रोफ़ोन किसी दिए गए प्रणाली को डेटा भेजने के लिए केवल एक इंटरफ़ेस प्रदान कर सकते हैं।<ref>{{cite encyclopedia
कंप्यूटिंग में, एक इंटरफ़ेस एक साझा सीमा होती है, जिसमें [[कंप्यूटर प्रणाली|कंप्यूटरसंगणक प्रणाली]] के दो या दो से अधिक अलग-अलग घटक सूचनाओं का आदान-प्रदान करते हैं। एक्सचेंज [[सॉफ्टवेयर]], [[कम्पुटर के वो भाग जिसे छूकर मेहसूस किया जा सके|कंप्यूटरसंगणक हार्डवेयर]], [[परिधीय]] उपकरणों, [[प्रयोक्ता इंटरफ़ेस]], मनुष्यों और इनके संयोजन के बीच हो सकता है।<ref name="HookwayInterface14">{{cite book |url=https://books.google.com/books?id=BQM_AwAAQBAJ |chapter=Chapter 1: The Subject of the इंटरफेस|title=इंटरफेस|author=Hookway, B. |publisher=MIT Press |pages=1–58 |year=2014 |isbn=9780262525503}}</ref> कुछ कंप्यूटरसंगणक हार्डवेयर उपकरणों, जैसे [[टच स्क्रीन]], इंटरफ़ेस के माध्यम से डेटा भेज और प्राप्त कर सकते हैं, जबकि अन्य जैसे माउस या माइक्रोफ़ोन किसी दिए गए प्रणाली को डेटा भेजने के लिए केवल एक इंटरफ़ेस प्रदान कर सकते हैं।<ref>{{cite encyclopedia
  | year = 2000
  | year = 2000
  | title = IEEE 100 - IEEE मानक शर्तों का आधिकारिक शब्दकोश| publisher = IEEE Press
  | title = IEEE 100 - IEEE मानक शर्तों का आधिकारिक शब्दकोश| publisher = IEEE Press
Line 12: Line 12:
[[File:RJ-45 Ethernet socket on Lenovo T410 Laptop.jpg|thumb|upright=1.4|[[लैपटॉप]] कंप्यूटर के हार्डवेयर इंटरफेस: [[ईथरनेट]] नेटवर्क सॉकेट (बीच में), बाईं ओर [[वीडियो ग्राफिक्स अरे]] पोर्ट का एक हिस्सा, दाईं ओर (ऊपरी) एक [[डिस्प्ले पोर्ट]] सॉकेट, दाईं ओर (नीचे) एक [[यूनिवर्सल सीरियल बस]]-बी सॉकेट .]]
[[File:RJ-45 Ethernet socket on Lenovo T410 Laptop.jpg|thumb|upright=1.4|[[लैपटॉप]] कंप्यूटर के हार्डवेयर इंटरफेस: [[ईथरनेट]] नेटवर्क सॉकेट (बीच में), बाईं ओर [[वीडियो ग्राफिक्स अरे]] पोर्ट का एक हिस्सा, दाईं ओर (ऊपरी) एक [[डिस्प्ले पोर्ट]] सॉकेट, दाईं ओर (नीचे) एक [[यूनिवर्सल सीरियल बस]]-बी सॉकेट .]]
{{Main article|Hardware interface}}
{{Main article|Hardware interface}}
हार्डवेयर इंटरफेस कई घटकों में मौजूद होते हैं, जैसे कि विभिन्न [[बस (कंप्यूटिंग)]], [[कंप्यूटर डेटा भंडारण]], अन्य I/O उपकरणों आदि। एक हार्डवेयर इंटरफेस को इंटरफेस पर मैकेनिकल, इलेक्ट्रिकल और लॉजिकल सिग्नल और अनुक्रमण के लिए प्रोटोकॉल द्वारा वर्णित किया जाता है। उन्हें (कभी-कभी सिग्नलिंग कहा जाता है)।<ref name="87Blaauw">
हार्डवेयर इंटरफेस कई घटकों में मौजूद होते हैं, जैसे कि विभिन्न [[बस (कंप्यूटिंग)]], [[कंप्यूटर डेटा भंडारण|कंप्यूटरसंगणक डेटा भंडारण]], अन्य I/O उपकरणों आदि। एक हार्डवेयर इंटरफेस को इंटरफेस पर मैकेनिकल, इलेक्ट्रिकल और लॉजिकल सिग्नल और अनुक्रमण के लिए प्रोटोकॉल द्वारा वर्णित किया जाता है। उन्हें (कभी-कभी सिग्नलिंग कहा जाता है)।<ref name="87Blaauw">
{{Citation
{{Citation
   | last1 = Blaauw
   | last1 = Blaauw
Line 44: Line 44:
== सॉफ्टवेयर इंटरफेस ==
== सॉफ्टवेयर इंटरफेस ==
{{See also|Application binary interface|Application programming interface}}
{{See also|Application binary interface|Application programming interface}}
एक सॉफ्टवेयर इंटरफ़ेस विभिन्न स्तरों पर विभिन्न प्रकार के इंटरफ़ेस की एक विस्तृत श्रृंखला को संदर्भित कर सकता है। उदाहरण के लिए, एक ऑपरेटिंग प्रणाली हार्डवेयर के टुकड़ों के साथ इंटरफेस कर सकता है। [[अनुप्रयोग प्रक्रिया सामग्री]] या ऑपरेटिंग प्रणाली पर चल रहे [[कंप्यूटर प्रोग्राम]] को डेटा [[स्ट्रीम (कंप्यूटिंग)]], फिल्टर और पाइपलाइन के माध्यम से इंटरैक्ट करने की आवश्यकता हो सकती है।<ref name="BuyyaMastering13">{{cite book |url=https://books.google.com/books?id=VSDZAgAAQBAJ&pg=SA2-PA13 |title=मास्टरिंग क्लाउड कंप्यूटिंग|author=Buyya, R. |publisher=Tata McGraw-Hill Education |page=2.13 |year=2013 |isbn=9781259029950}}</ref> [[वस्तु उन्मुख कार्यकर्म]] में, किसी एप्लिकेशन के भीतर ऑब्जेक्ट्स को मेथड (कंप्यूटर साइंस) के माध्यम से इंटरैक्ट करने की आवश्यकता हो सकती है।<ref name="PooObject08">{{cite book |chapter=Chapter 2: Object, Class, Message and Method |title=ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और जावा|url=https://archive.org/details/springer_10.1007-978-1-84628-963-7 |author1=Poo, D. |author2=Kiong, D. |author3=Ashok, S. |publisher=Springer-Verlag |pages=7–15 |year=2008 |isbn=9781846289637}}</ref>
एक सॉफ्टवेयर इंटरफ़ेस विभिन्न स्तरों पर विभिन्न प्रकार के इंटरफ़ेस की एक विस्तृत श्रृंखला को संदर्भित कर सकता है। उदाहरण के लिए, एक ऑपरेटिंग प्रणाली हार्डवेयर के टुकड़ों के साथ इंटरफेस कर सकता है। [[अनुप्रयोग प्रक्रिया सामग्री]] या ऑपरेटिंग प्रणाली पर चल रहे [[कंप्यूटर प्रोग्राम|कंप्यूटरसंगणक प्रोग्राम]] को डेटा [[स्ट्रीम (कंप्यूटिंग)]], फिल्टर और पाइपलाइन के माध्यम से इंटरैक्ट करने की आवश्यकता हो सकती है।<ref name="BuyyaMastering13">{{cite book |url=https://books.google.com/books?id=VSDZAgAAQBAJ&pg=SA2-PA13 |title=मास्टरिंग क्लाउड कंप्यूटिंग|author=Buyya, R. |publisher=Tata McGraw-Hill Education |page=2.13 |year=2013 |isbn=9781259029950}}</ref> [[वस्तु उन्मुख कार्यकर्म]] में, किसी एप्लिकेशन के भीतर ऑब्जेक्ट्स को मेथड (कंप्यूटरसंगणक साइंस) के माध्यम से इंटरैक्ट करने की आवश्यकता हो सकती है।<ref name="PooObject08">{{cite book |chapter=Chapter 2: Object, Class, Message and Method |title=ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और जावा|url=https://archive.org/details/springer_10.1007-978-1-84628-963-7 |author1=Poo, D. |author2=Kiong, D. |author3=Ashok, S. |publisher=Springer-Verlag |pages=7–15 |year=2008 |isbn=9781846289637}}</ref>




Line 61: Line 61:
  |archive-date = 2011-08-05
  |archive-date = 2011-08-05
}}
}}
</ref> सॉफ्टवेयर इंटरफेस अंतर्निहित कंप्यूटर प्रणाली के कंप्यूटर संसाधनों (जैसे मेमोरी, सीपीयू, स्टोरेज, आदि) तक पहुंच प्रदान करते हैं; सॉफ्टवेयर द्वारा ऐसे संसाधनों तक सीधी पहुंच (यानी, अच्छी तरह से डिज़ाइन किए गए इंटरफेस के माध्यम से नहीं) में कार्यक्षमता और स्थिरता के लिए प्रमुख प्रभाव पड़ सकते हैं - कभी-कभी विनाशकारी।{{citation needed|date=June 2018}}
</ref> सॉफ्टवेयर इंटरफेस अंतर्निहित कंप्यूटरसंगणक प्रणाली के कंप्यूटरसंगणक संसाधनों (जैसे मेमोरी, सीपीयू, स्टोरेज, आदि) तक पहुंच प्रदान करते हैं; सॉफ्टवेयर द्वारा ऐसे संसाधनों तक सीधी पहुंच (यानी, अच्छी तरह से डिज़ाइन किए गए इंटरफेस के माध्यम से नहीं) में कार्यक्षमता और स्थिरता के लिए प्रमुख प्रभाव पड़ सकते हैं - कभी-कभी विनाशकारी।{{citation needed|date=June 2018}}
सॉफ्टवेयर घटकों के बीच इंटरफेस [[निरंतर (कंप्यूटर विज्ञान)]] एस, डेटा प्रकार, [[सबरूटीन]]्स के प्रकार, अपवाद हैंडलिंग विनिर्देशों और [[विधि हस्ताक्षर]] प्रदान कर सकते हैं। कभी-कभी, सार्वजनिक [[चर (प्रोग्रामिंग)]] को एक इंटरफ़ेस के भाग के रूप में भी परिभाषित किया जाता है।<ref name="PattersonComputer04">{{cite book |title=कंप्यूटर संगठन और डिजाइन: हार्डवेयर/सॉफ्टवेयर इंटरफेस|author1=Patterson, D.A. |author2=Hennessy, J.L. |date=7 August 2004 |publisher=Elsevier |edition=3rd |page=656 |isbn=9780080502571}}</ref>
सॉफ्टवेयर घटकों के बीच इंटरफेस [[निरंतर (कंप्यूटर विज्ञान)|निरंतर (कंप्यूटरसंगणक विज्ञान)]] एस, डेटा प्रकार, [[सबरूटीन]]्स के प्रकार, अपवाद हैंडलिंग विनिर्देशों और [[विधि हस्ताक्षर]] प्रदान कर सकते हैं। कभी-कभी, सार्वजनिक [[चर (प्रोग्रामिंग)]] को एक इंटरफ़ेस के भाग के रूप में भी परिभाषित किया जाता है।<ref name="PattersonComputer04">{{cite book |title=कंप्यूटर संगठन और डिजाइन: हार्डवेयर/सॉफ्टवेयर इंटरफेस|author1=Patterson, D.A. |author2=Hennessy, J.L. |date=7 August 2004 |publisher=Elsevier |edition=3rd |page=656 |isbn=9780080502571}}</ref>
एक सॉफ्टवेयर मॉड्यूल ए का इंटरफ़ेस जानबूझकर उस मॉड्यूल के [[कार्यान्वयन (कंप्यूटर विज्ञान)]] से अलग से परिभाषित किया गया है। उत्तरार्द्ध में इंटरफ़ेस में वर्णित प्रक्रियाओं और विधियों का वास्तविक कोड, साथ ही साथ अन्य निजी चर, प्रक्रियाएं आदि शामिल हैं। एक अन्य सॉफ्टवेयर मॉड्यूल बी, उदाहरण के लिए [[क्लाइंट (कंप्यूटिंग)]] से ए, जो ए के साथ इंटरैक्ट करता है, करने के लिए मजबूर है तो केवल प्रकाशित इंटरफेस के माध्यम से। इस व्यवस्था का एक व्यावहारिक लाभ यह है कि A के कार्यान्वयन को उसी इंटरफ़ेस के दूसरे कार्यान्वयन के साथ बदलने से B को विफल नहीं होना चाहिए - कैसे A आंतरिक रूप से इंटरफ़ेस की आवश्यकताओं को पूरा करता है, B के लिए प्रासंगिक नहीं है, जो विशिष्टताओं के साथ चिंताओं को अलग करता है। अंतरपटल। ([[लिस्कोव प्रतिस्थापन सिद्धांत]] भी देखें।){{citation needed|date=June 2018}}
एक सॉफ्टवेयर मॉड्यूल ए का इंटरफ़ेस जानबूझकर उस मॉड्यूल के [[कार्यान्वयन (कंप्यूटर विज्ञान)|कार्यान्वयन (कंप्यूटरसंगणक विज्ञान)]] से अलग से परिभाषित किया गया है। उत्तरार्द्ध में इंटरफ़ेस में वर्णित प्रक्रियाओं और विधियों का वास्तविक कोड, साथ ही साथ अन्य निजी चर, प्रक्रियाएं आदि शामिल हैं। एक अन्य सॉफ्टवेयर मॉड्यूल बी, उदाहरण के लिए [[क्लाइंट (कंप्यूटिंग)]] से ए, जो ए के साथ इंटरैक्ट करता है, करने के लिए मजबूर है तो केवल प्रकाशित इंटरफेस के माध्यम से। इस व्यवस्था का एक व्यावहारिक लाभ यह है कि A के कार्यान्वयन को उसी इंटरफ़ेस के दूसरे कार्यान्वयन के साथ बदलने से B को विफल नहीं होना चाहिए - कैसे A आंतरिक रूप से इंटरफ़ेस की आवश्यकताओं को पूरा करता है, B के लिए प्रासंगिक नहीं है, जो विशिष्टताओं के साथ चिंताओं को अलग करता है। अंतरपटल। ([[लिस्कोव प्रतिस्थापन सिद्धांत]] भी देखें।){{citation needed|date=June 2018}}




=== वस्तु-उन्मुख भाषाओं में ===
=== वस्तु-उन्मुख भाषाओं में ===
{{Main article|Interface (object-oriented programming)|Concept (generic programming)}}
{{Main article|Interface (object-oriented programming)|Concept (generic programming)}}
कुछ वस्तु-उन्मुख भाषाओं में, विशेष रूप से वे जिनमें पूर्ण [[एकाधिक वंशानुक्रम]] नहीं है, इंटरफ़ेस शब्द का उपयोग [[सार डेटा प्रकार]] को परिभाषित करने के लिए किया जाता है जिसमें कोई डेटा नहीं होता है लेकिन व्यवहार को विधि (कंप्यूटर विज्ञान) हस्ताक्षर के रूप में परिभाषित करता है। एक वर्ग (कंप्यूटर विज्ञान) जिसमें उस इंटरफ़ेस से संबंधित सभी विधियों के लिए कोड और डेटा होता है और ऐसा घोषित करना उस इंटरफ़ेस को लागू करने के लिए कहा जाता है।<ref>{{cite web|url=http://docs.oracle.com/javase/tutorial/java/concepts/interface.html|title=एक इंटरफ़ेस क्या है|work=The Java Tutorials|publisher=Oracle|access-date=2012-05-01|url-status=live|archive-url=https://web.archive.org/web/20120412093619/http://docs.oracle.com/javase/tutorial/java/concepts/interface.html|archive-date=2012-04-12}}</ref> इसके अलावा, एकल-विरासत-भाषाओं में भी, कोई भी कई इंटरफेस लागू कर सकता है, और इसलिए एक ही समय में विभिन्न प्रकार के हो सकते हैं।<ref>{{cite web|url=http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html|title=इंटरफेस|work=The Java Tutorials|publisher=Oracle|access-date=2012-05-01|url-status=live|archive-url=https://web.archive.org/web/20120526080117/http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html|archive-date=2012-05-26}}</ref>
कुछ वस्तु-उन्मुख भाषाओं में, विशेष रूप से वे जिनमें पूर्ण [[एकाधिक वंशानुक्रम]] नहीं है, इंटरफ़ेस शब्द का उपयोग [[सार डेटा प्रकार]] को परिभाषित करने के लिए किया जाता है जिसमें कोई डेटा नहीं होता है लेकिन व्यवहार को विधि (कंप्यूटरसंगणक विज्ञान) हस्ताक्षर के रूप में परिभाषित करता है। एक वर्ग (कंप्यूटरसंगणक विज्ञान) जिसमें उस इंटरफ़ेस से संबंधित सभी विधियों के लिए कोड और डेटा होता है और ऐसा घोषित करना उस इंटरफ़ेस को लागू करने के लिए कहा जाता है।<ref>{{cite web|url=http://docs.oracle.com/javase/tutorial/java/concepts/interface.html|title=एक इंटरफ़ेस क्या है|work=The Java Tutorials|publisher=Oracle|access-date=2012-05-01|url-status=live|archive-url=https://web.archive.org/web/20120412093619/http://docs.oracle.com/javase/tutorial/java/concepts/interface.html|archive-date=2012-04-12}}</ref> इसके अलावा, एकल-विरासत-भाषाओं में भी, कोई भी कई इंटरफेस लागू कर सकता है, और इसलिए एक ही समय में विभिन्न प्रकार के हो सकते हैं।<ref>{{cite web|url=http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html|title=इंटरफेस|work=The Java Tutorials|publisher=Oracle|access-date=2012-05-01|url-status=live|archive-url=https://web.archive.org/web/20120526080117/http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html|archive-date=2012-05-26}}</ref>
एक इंटरफ़ेस इस प्रकार एक डेटा प्रकार की परिभाषा है; कहीं भी एक वस्तु का आदान-प्रदान किया जा सकता है (उदाहरण के लिए, एक फ़ंक्शन (कंप्यूटर विज्ञान) या विधि (कंप्यूटर विज्ञान) कॉल में) आदान-प्रदान की जाने वाली वस्तु के प्रकार को उसके कार्यान्वित इंटरफेस या बेस-क्लास के बजाय परिभाषित किया जा सकता है विशिष्ट वर्ग (कंप्यूटर विज्ञान) निर्दिष्ट करना। इस दृष्टिकोण का अर्थ है कि इंटरफ़ेस लागू करने वाले किसी भी वर्ग का उपयोग किया जा सकता है।{{citation needed|date=June 2018}} उदाहरण के लिए, अंतिम कार्यान्वयन उपलब्ध होने से पहले विकास को प्रगति की अनुमति देने के लिए एक [[कंकाल (कंप्यूटर प्रोग्रामिंग)]] का उपयोग किया जा सकता है। एक अन्य मामले में, एक परीक्षण-संचालित विकास#नकली, नकली और एकीकरण परीक्षण कार्यान्वयन को परीक्षण के दौरान प्रतिस्थापित किया जा सकता है। इस तरह के विधि स्टब कार्यान्वयन को बाद में विकास प्रक्रिया में वास्तविक कोड से बदल दिया जाता है।
एक इंटरफ़ेस इस प्रकार एक डेटा प्रकार की परिभाषा है; कहीं भी एक वस्तु का आदान-प्रदान किया जा सकता है (उदाहरण के लिए, एक फ़ंक्शन (कंप्यूटरसंगणक विज्ञान) या विधि (कंप्यूटरसंगणक विज्ञान) कॉल में) आदान-प्रदान की जाने वाली वस्तु के प्रकार को उसके कार्यान्वित इंटरफेस या बेस-क्लास के बजाय परिभाषित किया जा सकता है विशिष्ट वर्ग (कंप्यूटरसंगणक विज्ञान) निर्दिष्ट करना। इस दृष्टिकोण का अर्थ है कि इंटरफ़ेस लागू करने वाले किसी भी वर्ग का उपयोग किया जा सकता है।{{citation needed|date=June 2018}} उदाहरण के लिए, अंतिम कार्यान्वयन उपलब्ध होने से पहले विकास को प्रगति की अनुमति देने के लिए एक [[कंकाल (कंप्यूटर प्रोग्रामिंग)|कंकाल (कंप्यूटरसंगणक प्रोग्रामिंग)]] का उपयोग किया जा सकता है। एक अन्य मामले में, एक परीक्षण-संचालित विकास#नकली, नकली और एकीकरण परीक्षण कार्यान्वयन को परीक्षण के दौरान प्रतिस्थापित किया जा सकता है। इस तरह के विधि स्टब कार्यान्वयन को बाद में विकास प्रक्रिया में वास्तविक कोड से बदल दिया जाता है।


आमतौर पर एक इंटरफ़ेस में परिभाषित एक विधि में कोई कोड नहीं होता है और इस प्रकार स्वयं को कॉल नहीं किया जा सकता है; इसे लागू किए जाने पर चलाने के लिए इसे गैर-अमूर्त कोड द्वारा कार्यान्वित किया जाना चाहिए।{{citation needed|date=June 2018}} एक इंटरफ़ेस कहा जाता है<code>[[Stack (data structure)|Stack]]</code>दो तरीकों को परिभाषित कर सकता है: <code>push()</code> और <code>pop()</code>. इसे विभिन्न तरीकों से कार्यान्वित किया जा सकता है, उदाहरण के लिए, <code>FastStack</code> और <code>GenericStack</code>-पहला तेज़ होना, निश्चित आकार की डेटा संरचना के साथ काम करना, और दूसरा डेटा संरचना का उपयोग करना जिसका आकार बदला जा सकता है, लेकिन कुछ कम गति की कीमत पर।
आमतौर पर एक इंटरफ़ेस में परिभाषित एक विधि में कोई कोड नहीं होता है और इस प्रकार स्वयं को कॉल नहीं किया जा सकता है; इसे लागू किए जाने पर चलाने के लिए इसे गैर-अमूर्त कोड द्वारा कार्यान्वित किया जाना चाहिए।{{citation needed|date=June 2018}} एक इंटरफ़ेस कहा जाता है<code>[[Stack (data structure)|Stack]]</code>दो तरीकों को परिभाषित कर सकता है: <code>push()</code> और <code>pop()</code>. इसे विभिन्न तरीकों से कार्यान्वित किया जा सकता है, उदाहरण के लिए, <code>FastStack</code> और <code>GenericStack</code>-पहला तेज़ होना, निश्चित आकार की डेटा संरचना के साथ काम करना, और दूसरा डेटा संरचना का उपयोग करना जिसका आकार बदला जा सकता है, लेकिन कुछ कम गति की कीमत पर।


हालाँकि इंटरफ़ेस में कई विधियाँ हो सकती हैं, उनमें केवल एक या कोई भी नहीं हो सकती है। उदाहरण के लिए, [[जावा (प्रोग्रामिंग भाषा)]] भाषा इंटरफ़ेस को परिभाषित करती है {{Java|Readable}} जिसमें सिंगल है {{Java|read()}} तरीका; विभिन्न उद्देश्यों के लिए विभिन्न कार्यान्वयनों का उपयोग किया जाता है, जिनमें शामिल हैं {{Java|BufferedReader}}, {{Java|FileReader}}, {{Java|InputStreamReader}}, {{Java|PipedReader}}, और {{Java|StringReader}}. [[मार्कर इंटरफ़ेस पैटर्न]] जैसे {{Java|Serializable}} इसमें कोई विधि नहीं है और [[प्रतिबिंब (कंप्यूटर प्रोग्रामिंग)]] का उपयोग करके सामान्य प्रसंस्करण के लिए रन-टाइम जानकारी प्रदान करने के लिए सेवा प्रदान करता है।<ref>
हालाँकि इंटरफ़ेस में कई विधियाँ हो सकती हैं, उनमें केवल एक या कोई भी नहीं हो सकती है। उदाहरण के लिए, [[जावा (प्रोग्रामिंग भाषा)]] भाषा इंटरफ़ेस को परिभाषित करती है {{Java|Readable}} जिसमें सिंगल है {{Java|read()}} तरीका; विभिन्न उद्देश्यों के लिए विभिन्न कार्यान्वयनों का उपयोग किया जाता है, जिनमें शामिल हैं {{Java|BufferedReader}}, {{Java|FileReader}}, {{Java|InputStreamReader}}, {{Java|PipedReader}}, और {{Java|StringReader}}. [[मार्कर इंटरफ़ेस पैटर्न]] जैसे {{Java|Serializable}} इसमें कोई विधि नहीं है और [[प्रतिबिंब (कंप्यूटर प्रोग्रामिंग)|प्रतिबिंब (कंप्यूटरसंगणक प्रोग्रामिंग)]] का उपयोग करके सामान्य प्रसंस्करण के लिए रन-टाइम जानकारी प्रदान करने के लिए सेवा प्रदान करता है।<ref>
{{cite web
{{cite web
  |access-date  = 2011-08-04
  |access-date  = 2011-08-04
Line 101: Line 101:
== यूजर इंटरफेस ==
== यूजर इंटरफेस ==
{{Main article|User interface}}
{{Main article|User interface}}
उपयोगकर्ता इंटरफ़ेस कंप्यूटर और मनुष्यों के बीच संपर्क का एक बिंदु है; इसमें [[ह्यूमन कंप्यूटर इंटरेक्शन]] (जैसे ग्राफिक्स, ध्वनि, स्थिति, आंदोलन, आदि) के किसी भी प्रकार के मॉडेलिटी (मानव-कंप्यूटर इंटरैक्शन) शामिल हैं, जहां उपयोगकर्ता और कंप्यूटर प्रणाली के बीच डेटा स्थानांतरित किया जाता है।
उपयोगकर्ता इंटरफ़ेस कंप्यूटरसंगणक और मनुष्यों के बीच संपर्क का एक बिंदु है; इसमें [[ह्यूमन कंप्यूटर इंटरेक्शन|ह्यूमन कंप्यूटरसंगणक इंटरेक्शन]] (जैसे ग्राफिक्स, ध्वनि, स्थिति, आंदोलन, आदि) के किसी भी प्रकार के मॉडेलिटी (मानव-कंप्यूटरसंगणक इंटरैक्शन) शामिल हैं, जहां उपयोगकर्ता और कंप्यूटरसंगणक प्रणाली के बीच डेटा स्थानांतरित किया जाता है।


== यह भी देखें ==
== यह भी देखें ==
Line 108: Line 108:
* [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]]
* [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]]
* बिजनेस [[इंटरोऑपरेबिलिटी]] इंटरफेस
* बिजनेस [[इंटरोऑपरेबिलिटी]] इंटरफेस
* [[कंप्यूटर बस]]
* [[कंप्यूटर बस|कंप्यूटरसंगणक बस]]
* [[हार्ड डिस्क ड्राइव इंटरफ़ेस]]
* [[हार्ड डिस्क ड्राइव इंटरफ़ेस]]
* कार्यान्वयन (कंप्यूटर विज्ञान)
* कार्यान्वयन (कंप्यूटरसंगणक विज्ञान)
* [[कार्यान्वयन विरासत]]
* [[कार्यान्वयन विरासत]]
* इंटरऑपरेबिलिटी
* इंटरऑपरेबिलिटी

Revision as of 06:02, 27 December 2022

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


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

लैपटॉप कंप्यूटर के हार्डवेयर इंटरफेस: ईथरनेट नेटवर्क सॉकेट (बीच में), बाईं ओर वीडियो ग्राफिक्स अरे पोर्ट का एक हिस्सा, दाईं ओर (ऊपरी) एक डिस्प्ले पोर्ट सॉकेट, दाईं ओर (नीचे) एक यूनिवर्सल सीरियल बस-बी सॉकेट .

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


सॉफ्टवेयर इंटरफेस

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


व्यवहार में

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


वस्तु-उन्मुख भाषाओं में

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

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

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


इंटरफ़ेस के लिए प्रोग्रामिंग

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

यूजर इंटरफेस

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

यह भी देखें


संदर्भ

  1. Hookway, B. (2014). "Chapter 1: The Subject of the इंटरफेस". इंटरफेस. MIT Press. pp. 1–58. ISBN 9780262525503.
  2. IEEE 100 - IEEE मानक शर्तों का आधिकारिक शब्दकोश. NYC, NY, USA: IEEE Press. 2000. pp. 574–575. ISBN 9780738126012.
  3. 3.0 3.1 Blaauw, Gerritt A.; Brooks, Jr., Frederick P. (1997), "Chapter 8.6, Device Interfaces", Computer Architecture-Concepts and Evolution, Addison-Wesley, pp. 489–493, ISBN 0-201-10557-8 See also: Patterson, David A.; Hennessey, John L. (2005), "Chapter 8.5, Interfacing I/O Devices to the Processor, Memory and Operating System", Computer Organization and Design - The Hardware/Software Interface, Third Edition, Morgan Kaufmann, pp. 588–596, ISBN 1-55860-604-1
  4. Govindarajalu, B. (2008). "3.15 Peripheral Interfaces and Controllers - OG". आईबीएम पीसी और क्लोन: हार्डवेयर, समस्या निवारण और रखरखाव. Tata McGraw-Hill Publishing Co. Ltd. pp. 142–144. ISBN 9780070483118. Retrieved 15 June 2018.
  5. Buyya, R. (2013). मास्टरिंग क्लाउड कंप्यूटिंग. Tata McGraw-Hill Education. p. 2.13. ISBN 9781259029950.
  6. Poo, D.; Kiong, D.; Ashok, S. (2008). "Chapter 2: Object, Class, Message and Method". ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और जावा. Springer-Verlag. pp. 7–15. ISBN 9781846289637.
  7. Bill Venners (2005-06-06). "Leading-Edge Java: Design Principles from Design Patterns: Program to an interface, not an implementation - A Conversation with Erich Gamma, Part III". artima developer. Archived from the original on 2011-08-05. Retrieved 2011-08-03. Once you depend on interfaces only, you're decoupled from the implementation. That means the implementation can vary, and that is a healthy dependency relationship. For example, for testing purposes you can replace a heavy database implementation with a lighter-weight mock implementation. Fortunately, with today's refactoring support you no longer have to come up with an interface up front. You can distill an interface from a concrete class once you have the full insights into a problem. The intended interface is just one 'extract interface' refactoring away. ...
  8. Patterson, D.A.; Hennessy, J.L. (7 August 2004). कंप्यूटर संगठन और डिजाइन: हार्डवेयर/सॉफ्टवेयर इंटरफेस (3rd ed.). Elsevier. p. 656. ISBN 9780080502571.
  9. "एक इंटरफ़ेस क्या है". The Java Tutorials. Oracle. Archived from the original on 2012-04-12. Retrieved 2012-05-01.
  10. "इंटरफेस". The Java Tutorials. Oracle. Archived from the original on 2012-05-26. Retrieved 2012-05-01.
  11. "Performance improvement techniques in Serialization". Precise Java. Archived from the original on 2011-08-24. Retrieved 2011-08-04. We will talk initially about Serializable interface. This is a marker interface and does not have any methods.
  12. Gamma; Helm; Johnson; Vlissides (1995). डिज़ाइन पैटर्न: पुन: प्रयोज्य ऑब्जेक्ट-ओरिएंटेड सॉफ़्टवेयर के तत्व. Addison Wesley. pp. 17–18. ISBN 9780201633610.

श्रेणी:ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग श्रेणी: प्रोग्रामिंग निर्माण