इंटरफ़ेस (कंप्यूटिंग): Difference between revisions
(Created page with "{{short description|Concept of computer science; point of interaction between two things}} {{Refimprove|date=May 2010}} कंप्यूटिंग में, एक इं...") |
No edit summary |
||
Line 119: | Line 119: | ||
== संदर्भ == | == संदर्भ == | ||
{{Reflist}} | {{Reflist}} |
Revision as of 05:52, 27 December 2022
This article needs additional citations for verification. (May 2010) (Learn how and when to remove this template message) |
कंप्यूटिंग में, एक इंटरफ़ेस एक साझा सीमा होती है, जिसमें कंप्यूटर प्रणाली के दो या दो से अधिक अलग-अलग घटक सूचनाओं का आदान-प्रदान करते हैं। एक्सचेंज सॉफ्टवेयर, कम्पुटर के वो भाग जिसे छूकर मेहसूस किया जा सके, परिधीय डिवाइस, प्रयोक्ता इंटरफ़ेस और इनके संयोजन के बीच हो सकता है।[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] इस विचार को चरम सीमा तक ले जाना, नियंत्रण का व्युत्क्रम कोड को इंटरफ़ेस के विशिष्ट कार्यान्वयन के साथ इंजेक्ट करने के लिए संदर्भ छोड़ देता है जिसका उपयोग कार्य करने के लिए किया जाएगा।
यूजर इंटरफेस
उपयोगकर्ता इंटरफ़ेस कंप्यूटर और मनुष्यों के बीच संपर्क का एक बिंदु है; इसमें ह्यूमन कंप्यूटर इंटरेक्शन (जैसे ग्राफिक्स, ध्वनि, स्थिति, आंदोलन, आदि) के किसी भी प्रकार के मॉडेलिटी (मानव-कंप्यूटर इंटरैक्शन) शामिल हैं, जहां उपयोगकर्ता और कंप्यूटर सिस्टम के बीच डेटा स्थानांतरित किया जाता है।
यह भी देखें
- अमूर्त उलटा
- अनुप्रयोग बाइनरी इंटरफ़ेस
- अप्लिकेशन प्रोग्रामिंग अंतरफलक
- बिजनेस इंटरोऑपरेबिलिटी इंटरफेस
- कंप्यूटर बस
- हार्ड डिस्क ड्राइव इंटरफ़ेस
- कार्यान्वयन (कंप्यूटर विज्ञान)
- कार्यान्वयन विरासत
- इंटरऑपरेबिलिटी
- वंशानुक्रम शब्दार्थ
- मॉड्यूलर प्रोग्रामिंग
- सॉफ्टवेयर घटक
- आभासी विरासत
संदर्भ
- ↑ Hookway, B. (2014). "Chapter 1: The Subject of the इंटरफेस". इंटरफेस. MIT Press. pp. 1–58. ISBN 9780262525503.
- ↑ IEEE 100 - IEEE मानक शर्तों का आधिकारिक शब्दकोश. NYC, NY, USA: IEEE Press. 2000. pp. 574–575. ISBN 9780738126012.
- ↑ 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
- ↑ 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.
- ↑ Buyya, R. (2013). मास्टरिंग क्लाउड कंप्यूटिंग. Tata McGraw-Hill Education. p. 2.13. ISBN 9781259029950.
- ↑ Poo, D.; Kiong, D.; Ashok, S. (2008). "Chapter 2: Object, Class, Message and Method". ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और जावा. Springer-Verlag. pp. 7–15. ISBN 9781846289637.
- ↑
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. ...
- ↑ Patterson, D.A.; Hennessy, J.L. (7 August 2004). कंप्यूटर संगठन और डिजाइन: हार्डवेयर/सॉफ्टवेयर इंटरफेस (3rd ed.). Elsevier. p. 656. ISBN 9780080502571.
- ↑ "एक इंटरफ़ेस क्या है". The Java Tutorials. Oracle. Archived from the original on 2012-04-12. Retrieved 2012-05-01.
- ↑ "इंटरफेस". The Java Tutorials. Oracle. Archived from the original on 2012-05-26. Retrieved 2012-05-01.
- ↑
"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.
- ↑ Gamma; Helm; Johnson; Vlissides (1995). डिज़ाइन पैटर्न: पुन: प्रयोज्य ऑब्जेक्ट-ओरिएंटेड सॉफ़्टवेयर के तत्व. Addison Wesley. pp. 17–18. ISBN 9780201633610.
श्रेणी:ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग श्रेणी: प्रोग्रामिंग निर्माण