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

From Vigyanwiki
No edit summary
No edit summary
 
(8 intermediate revisions by 5 users not shown)
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}}
कंप्यूटिंग में, '''इंटरफ़ेस''' एक साझा सीमा होती है, जिसमें [[कंप्यूटर प्रणाली]] के दो या दो से अधिक अलग-अलग घटक सूचनाओं का आदान-प्रदान करते हैं। एक्सचेंज [[सॉफ्टवेयर]], [[कम्पुटर के वो भाग जिसे छूकर मेहसूस किया जा सके|कंप्यूटर हार्डवेयर]], [[परिधीय]] उपकरणों, [[प्रयोक्ता इंटरफ़ेस]], मनुष्यों और इनके संयोजन के बीच हो सकता है।<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 11:
[[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|हार्डवेयर इंटरफ़ेस}}
{{Main article|हार्डवेयर इंटरफ़ेस}}
हार्डवेयर इंटरफेस कई घटकों में मौजूद होते हैं, जैसे कि विभिन्न [[बस (कंप्यूटिंग)|बसें (कंप्यूटिंग)]], [[कंप्यूटर डेटा भंडारण|संगणक डेटा भंडारण]], अन्य I/O उपकरणों आदि। एक हार्डवेयर इंटरफेस को इंटरफेस पर मैकेनिकल, इलेक्ट्रिकल और लॉजिकल सिग्नल और अनुक्रमण के लिए प्रोटोकॉल (कभी-कभी सिग्नलिंग कहा जाता है) द्वारा वर्णित किया जाता है।।<ref name="87Blaauw">
हार्डवेयर इंटरफेस कई घटकों में उपस्थित होते हैं, जैसे कि विभिन्न [[बस (कंप्यूटिंग)|बसें (कंप्यूटिंग)]], [[कंप्यूटर डेटा भंडारण]], अन्य I/O उपकरणों आदि। एक हार्डवेयर इंटरफेस को इंटरफेस पर मैकेनिकल, इलेक्ट्रिकल और लॉजिकल सिग्नल और अनुक्रमण के लिए प्रोटोकॉल (कभी-कभी सिग्नलिंग कहा जाता है) द्वारा वर्णित किया जाता है।।<ref name="87Blaauw">
{{Citation
{{Citation
   | last1 = Blaauw
   | last1 = Blaauw
Line 44: Line 43:
== सॉफ्टवेयर इंटरफेस ==
== सॉफ्टवेयर इंटरफेस ==
{{See also|अनुप्रयोग बाइनरी इंटरफ़ेस|अप्लिकेशन प्रोग्रामिंग इंटरफ़ेस}}
{{See also|अनुप्रयोग बाइनरी इंटरफ़ेस|अप्लिकेशन प्रोग्रामिंग इंटरफ़ेस}}
एक सॉफ्टवेयर इंटरफ़ेस विभिन्न स्तरों पर विभिन्न प्रकार के इंटरफ़ेस की एक विस्तृत श्रृंखला को संदर्भित कर सकता है। उदाहरण के लिए, एक ऑपरेटिंग प्रणाली हार्डवेयर के टुकड़ों के साथ इंटरफेस कर सकता है। [[अनुप्रयोग प्रक्रिया सामग्री]] या ऑपरेटिंग प्रणाली पर चल रहे [[कंप्यूटर प्रोग्राम|संगणक प्रोग्राम]] को डेटा [[स्ट्रीम (कंप्यूटिंग)]], फिल्टर और पाइपलाइन के माध्यम से इंटरैक्ट करने की आवश्यकता हो सकती है।<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>




=== व्यवहार में ===
=== व्यवहार में ===
डिजाइन का एक प्रमुख सिद्धांत डिफ़ॉल्ट रूप से सभी संसाधनों तक पहुंच को प्रतिबंधित करना है, केवल अच्छी तरह से परिभाषित प्रवेश बिंदुओं, यानी इंटरफेस के माध्यम से पहुंच की अनुमति देना।<ref>
डिजाइन का एक प्रमुख सिद्धांत डिफ़ॉल्ट रूप से सभी संसाधनों तक पहुंच को प्रतिबंधित करना है, केवल अच्छी तरह से परिभाषित प्रवेश बिंदुओं, अर्थात् इंटरफेस के माध्यम से पहुंच की अनुमति देना।<ref>
{{cite web
{{cite web
  |access-date  = 2011-08-03
  |access-date  = 2011-08-03
Line 61: Line 60:
  |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>


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




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


हालाँकि इंटरफ़ेस में कई विधियाँ हो सकती हैं, उनमें केवल एक या कोई भी नहीं हो सकती है। उदाहरण के लिए, [[जावा (प्रोग्रामिंग भाषा)]] भाषा इंटरफ़ेस को परिभाषित करती है {{Java|Readable}} जिसमें सिंगल है {{Java|read()}} तरीका; विभिन्न उद्देश्यों के लिए विभिन्न कार्यान्वयनों का उपयोग किया जाता है, जिनमें शामिल हैं {{Java|BufferedReader}}, {{Java|FileReader}}, {{Java|InputStreamReader}}, {{Java|PipedReader}}, और {{Java|StringReader}}. [[मार्कर इंटरफ़ेस पैटर्न]] जैसे {{Java|Serializable}} इसमें कोई विधि नहीं है और [[प्रतिबिंब (कंप्यूटर प्रोग्रामिंग)|प्रतिबिंब (संगणक प्रोग्रामिंग)]] का उपयोग करके सामान्य प्रसंस्करण के लिए रन-टाइम जानकारी प्रदान करने के लिए सेवा प्रदान करता है।<ref>
सामान्यतः एक इंटरफ़ेस में परिभाषित एक विधि में कोई कोड नहीं होता है और इस प्रकार स्वयं को कॉल नहीं किया जा सकता है; जब इसे लागू किया जाता है तो इसे चलाने के लिए इसे गैर-अमूर्त कोड द्वारा कार्यान्वित किया जाना चाहिए।{{citation needed|date=June 2018}} <code>[[Stack (data structure)|स्टैक]]</code>नामक एक इंटरफ़ेस दो विधियों <code>push()</code> और <code>pop()</code> को परभाषित कर सकता है। इसे विभिन्न विधियों से कार्यान्वित किया जा सकता है, उदाहरण के लिए, <code>FastStack</code> और <code>GenericStack</code>-पहला तेज़ होना, निश्चित आकार की डेटा संरचना के साथ काम कर रहा है, और दूसरा डेटा संरचना का उपयोग करना जिसका आकार बदला जा सकता है, लेकिन कुछ कम गति की कीमत पर यह कार्य होता है।
 
चूंकि इंटरफ़ेस में कई विधियाँ हो सकती हैं, उनमें केवल एक या कोई भी नहीं हो सकती है। उदाहरण के लिए, [[जावा (प्रोग्रामिंग भाषा)]] इंटरफ़ेस को पढ़ने योग्य परिभाषित करती है जिसमें एकल पढ़ने () विधि होती है; बफर्डरीडर, फाइलरीडर, इनपुटस्ट्रीमरीडर, पाइप्डरीडर, और स्ट्रिंगरीडर सहित विभिन्न उद्देश्यों के लिए विभिन्न कार्यान्वयनों का उपयोग किया जाता है। Serializable जैसे [[मार्कर इंटरफ़ेस पैटर्न]] में कोई भी विधि नहीं है और [[प्रतिबिंब (कंप्यूटर प्रोग्रामिंग)]] का उपयोग करके सामान्य प्रसंस्करण के लिए रन-टाइम जानकारी प्रदान करने के लिए काम करता है।<ref>
{{cite web
{{cite web
  |access-date  = 2011-08-04
  |access-date  = 2011-08-04
Line 85: Line 85:
  |url-status  = live
  |url-status  = live
  |archive-url  = https://web.archive.org/web/20110824150046/http://www.precisejava.com/javaperf/j2se/Serialization.htm
  |archive-url  = https://web.archive.org/web/20110824150046/http://www.precisejava.com/javaperf/j2se/Serialization.htm
  |archive-date = 2011-08-24}}</ref>
  |archive-date = 2011-08-24}}</ref>                                                        




=== इंटरफ़ेस के लिए प्रोग्रामिंग ===
=== इंटरफ़ेस के लिए प्रोग्रामिंग ===
इंटरफेस का उपयोग एक प्रोग्रामिंग शैली के लिए अनुमति देता है जिसे इंटरफ़ेस के लिए प्रोग्रामिंग कहा जाता है। इस दृष्टिकोण के पीछे का विचार आंतरिक कार्यान्वयन विवरण के बजाय उपयोग की जाने वाली वस्तुओं के इंटरफेस पर प्रोग्रामिंग तर्क को आधार बनाना है। इंटरफ़ेस के लिए प्रोग्रामिंग कार्यान्वयन की बारीकियों पर निर्भरता कम करती है और कोड को अधिक पुन: प्रयोज्य बनाती है।<ref>{{cite book
इंटरफेस का उपयोग एक प्रोग्रामिंग शैली के लिए अनुमति देता है जिसे इंटरफ़ेस के लिए प्रोग्रामिंग कहा जाता है। इस दृष्टिकोण के पीछे का विचार आंतरिक कार्यान्वयन विवरण के अतिरिक्त उपयोग की जाने वाली वस्तुओं के इंटरफेस पर प्रोग्रामिंग तर्क को आधार बनाना है। इंटरफ़ेस के लिए प्रोग्रामिंग कार्यान्वयन की बारीकियों पर निर्भरता कम करती है और कोड को अधिक पुन: प्रयोज्य बनाती है।<ref>{{cite book
  | last1 = Gamma
  | last1 = Gamma
  | last2 = Helm
  | last2 = Helm
Line 100: Line 100:
  | pages = [https://archive.org/details/designpatternsel00gamm/page/17 17–18]| isbn = 9780201633610
  | pages = [https://archive.org/details/designpatternsel00gamm/page/17 17–18]| isbn = 9780201633610
  }}</ref>
  }}</ref>
इस विचार को चरम सीमा तक ले जाना, नियंत्रण का व्युत्क्रम कोड को इंटरफ़ेस के विशिष्ट कार्यान्वयन के साथ इंजेक्ट करने के लिए संदर्भ छोड़ देता है जिसका उपयोग कार्य करने के लिए किया जाएगा।
 
इस विचार को अत्यधिक सीमा तक ले जाना, नियंत्रण का व्युत्क्रम कोड को इंटरफ़ेस के विशिष्ट कार्यान्वयन के साथ इंजेक्ट करने के लिए संदर्भ छोड़ देता है जिसका उपयोग कार्य करने के लिए किया जाएगा।


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


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


{{Authority control}}
{{DEFAULTSORT:Interface (Computing)}}
 
{{DEFAULTSORT:Interface (Computing)}}[[श्रेणी:इंटरफेस| ]]
[[श्रेणी:ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग]]
[[श्रेणी: प्रोग्रामिंग निर्माण]]
 


[[Category: Machine Translated Page]]
[[Category:All articles with unsourced statements|Interface (Computing)]]
[[Category:Created On 18/12/2022]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Interface (Computing)]]
[[Category:Articles with short description|Interface (Computing)]]
[[Category:Articles with unsourced statements from June 2018|Interface (Computing)]]
[[Category:CS1 français-language sources (fr)]]
[[Category:CS1 maint]]
[[Category:CS1 Ελληνικά-language sources (el)]]
[[Category:Citation Style 1 templates|W]]
[[Category:Collapse templates]]
[[Category:Created On 18/12/2022|Interface (Computing)]]
[[Category:Machine Translated Page|Interface (Computing)]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors|Interface (Computing)]]
[[Category:Short description with empty Wikidata description|Interface (Computing)]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates based on the Citation/CS1 Lua module]]
[[Category:Templates generating COinS|Cite web]]
[[Category:Templates generating microformats]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates used by AutoWikiBrowser|Cite web]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia fully protected templates|Cite web]]
[[Category:Wikipedia metatemplates]]

Latest revision as of 12:15, 2 November 2023

कंप्यूटिंग में, इंटरफ़ेस एक साझा सीमा होती है, जिसमें कंप्यूटर प्रणाली के दो या दो से अधिक अलग-अलग घटक सूचनाओं का आदान-प्रदान करते हैं। एक्सचेंज सॉफ्टवेयर, कंप्यूटर हार्डवेयर, परिधीय उपकरणों, प्रयोक्ता इंटरफ़ेस, मनुष्यों और इनके संयोजन के बीच हो सकता है।[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] स्टैकनामक एक इंटरफ़ेस दो विधियों push() और pop() को परभाषित कर सकता है। इसे विभिन्न विधियों से कार्यान्वित किया जा सकता है, उदाहरण के लिए, FastStack और GenericStack-पहला तेज़ होना, निश्चित आकार की डेटा संरचना के साथ काम कर रहा है, और दूसरा डेटा संरचना का उपयोग करना जिसका आकार बदला जा सकता है, लेकिन कुछ कम गति की कीमत पर यह कार्य होता है।

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