इंटरफ़ेस (कंप्यूटिंग)
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]
एक सॉफ्टवेयर मॉड्यूल ए का इंटरफ़ेस जानबूझकर उस मॉड्यूल के कार्यान्वयन (संगणक विज्ञान) से अलग से परिभाषित किया गया है। उत्तरार्द्ध में इंटरफ़ेस में वर्णित प्रक्रियाओं और विधियों का वास्तविक कोड, साथ ही साथ अन्य निजी चर, प्रक्रियाएं आदि शामिल हैं। एक अन्य सॉफ्टवेयर मॉड्यूल B, उदाहरण के लिए A के लिए क्लाइंट (कंप्यूटिंग), जो A के साथ इंटरैक्ट करता है, केवल प्रकाशित इंटरफ़ेस के माध्यम से ऐसा करने के लिए विवश है। इस व्यवस्था का एक व्यावहारिक लाभ यह है कि 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.
श्रेणी:ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग श्रेणी: प्रोग्रामिंग निर्माण