"हॅलो, अमिगो! आज मी तुम्हाला इंटरफेस का अस्तित्वात आहे याची कारणे सांगू इच्छितो. तुम्ही अनेकदा ऐकता की एखादा विशिष्ट वर्ग, ऑब्जेक्ट किंवा संस्था विशिष्ट इंटरफेसला सपोर्ट करते. इंटरफेसला सपोर्ट करणे म्हणजे काय? "

विशिष्ट वर्तनाचे समर्थन करण्यासाठी इंटरफेस अस्तित्वात आहेत - 1

व्यापक अर्थाने, कोणताही इंटरफेस ही एखाद्या गोष्टीशी संवाद साधण्याची यंत्रणा असते. उदाहरणार्थ, टीव्ही रिमोट हा रिमोट इंटरफेस आहे. कुत्रा आज्ञा समजतो आणि त्याची अंमलबजावणी करतो, याचा अर्थ कुत्रा आवाज (नियंत्रण) इंटरफेसला समर्थन देतो. या सर्वांचा सारांश, आम्ही असे म्हणू शकतो की इंटरफेस हा दोन गोष्टींचा परस्परसंवाद करण्याचा एक प्रमाणित मार्ग आहे, जिथे दोन्ही पक्षांना मानक माहित आहे. जेव्हा एखादी व्यक्ती कुत्र्याला "बसायला" सांगते, तेव्हा त्याची आज्ञा "कुत्रा व्हॉइस-कंट्रोल इंटरफेस" चा भाग असते आणि जर कुत्रा आज्ञा पाळत असेल, तर आम्ही म्हणतो की कुत्रा इंटरफेसला सपोर्ट करतो.

तर ते प्रोग्रामिंगमध्ये आहे. पद्धती म्हणजे ऑब्जेक्टवर, त्याच्या डेटावर केलेल्या क्रिया. आणि जर एखादा वर्ग काही विशिष्ट पद्धती लागू करत असेल, तर तो काही आदेशांच्या "अंमलबजावणीला समर्थन देतो". इंटरफेसमध्ये पद्धती एकत्र करून आपण काय मिळवू शकतो?

1) प्रत्येक इंटरफेसला , वर्गाप्रमाणेच , एक अद्वितीय नाव आहे. दोन्ही पक्ष 100% खात्री बाळगू शकतात की दुसरा पक्ष त्यांना माहित असलेल्या अचूक इंटरफेसला समर्थन देतो आणि काही समान इंटरफेस नाही.

2) प्रत्येक इंटरफेस त्याला समर्थन देणार्‍या वर्गावर काही निर्बंध लादतो. वर्ग (त्याचा विकसक) जेव्हा इंटरफेसमधून वारशाने मिळालेल्या पद्धती कॉल केल्या जातात तेव्हा तो काय करेल हे ठरवतो, परंतु परिणाम वाजवी अपेक्षांच्या मर्यादेत असावा. जर आपण कुत्र्याला "बसण्याचा" आदेश दिला आणि नंतर तो 5 मिनिटे त्या जागी फिरून बसला, तर तो इंटरफेसला सपोर्ट करतो. परंतु जर त्याऐवजी ते तुम्हाला पायाने पकडले तर ते इंटरफेसला समर्थन देते असे आम्ही म्हणू शकत नाही. कमांड कार्यान्वित केल्याने अपेक्षित परिणाम झाला नाही.

समजा तुम्ही आणि तुमचे मित्र एक संगणक गेम लिहित आहात. आणि तुम्हाला एका वर्णाचे वर्तन प्रोग्राम करण्यासाठी नियुक्त केले गेले आहे. तुमच्या एका सहकाऱ्याने स्क्रीनवर सर्व वर्ण प्रदर्शित करण्यासाठी कोड आधीच लिहिला आहे. दुसरा सहकारी, जो गेम डिस्कवर सेव्ह करण्यासाठी जबाबदार आहे, त्याने सर्व गेम ऑब्जेक्ट्स फाइलमध्ये सेव्ह करण्यासाठी कोड लिहिला आहे. त्या प्रत्येकाने भरपूर कोड लिहिले आणि त्या कोडशी संवाद साधण्यासाठी इंटरफेस बनवला. उदाहरणार्थ, ते यासारखे दिसू शकते:

जावा कोड वर्णन
interface Saveable
{
 void saveToMap(Map<String, Object> map);
 void loadFromMap(Map<String, Object> map);
}
- नकाशावरून ऑब्जेक्ट संचयित / लोड करण्यासाठी इंटरफेस.
interface Drawable
{
 void draw(Screen screen);
}
- पास केलेल्या स्क्रीन ऑब्जेक्टमध्ये ऑब्जेक्ट काढण्यासाठी इंटरफेस.
class PacMan implements Saveable, Drawable
{}
- तुमचा वर्ग, जो दोन इंटरफेसला सपोर्ट करतो.

दुसऱ्या शब्दांत, कोणत्याही इंटरफेसला (इंटरफेसचा गट) समर्थन देण्यासाठी, तुमच्या वर्गाने हे करणे आवश्यक आहे:

1) त्यांना वारस द्या

२) त्यात घोषित केलेल्या पद्धती अंमलात आणा

3) पद्धतींनी जे करायचे होते तेच केले पाहिजे.

मग प्रोग्रामचा उर्वरित कोड, ज्याला तुमच्या वर्गाबद्दल आणि त्याच्या वस्तूंबद्दल काहीही माहिती नाही, ते तुमच्या वर्गासोबत काम करू शकतात.

"कोडला माझ्या वर्गाबद्दल काहीच का कळत नाही?"

"तुम्ही एका वर्षापूर्वी एखाद्याने लिहिलेल्या प्रोग्राममधून कोड घेतला असे समजा. किंवा समजा तुमच्या मित्रांनी गेम इंजिन दुसर्‍या कोणाकडून विकत/परवाना घेतला आहे. तुमच्याकडे गेमसाठी कार्यरत कोड आहे. हजारो ऑब्जेक्ट्स जे एकमेकांशी संवाद साधतात. आणि ते तुमच्या वर्गांनी योग्यरित्या अंमलात आणलेल्या इंटरफेसद्वारे तुम्ही ते परस्परसंवाद घडवून आणल्यास ते तुमच्या वस्तूंशी सहज संवाद साधू शकतात ."

"दूर! मला माहित नव्हते की हे शक्य आहे."

"सर्व मोठे प्रकल्प असेच चालतात. लोकांनी फार पूर्वीपासून सुरवातीपासून लिहिणे बंद केले आहे."

लोक प्रत्येक वेळी गणित आणि वर्णमाला पुन्हा शोधत नाहीत. त्याऐवजी, ते त्यांच्या आधी शोधलेल्या प्रत्येक गोष्टीचा अभ्यास करतात.