"வணக்கம், அமிகோ! இன்று நான் உங்களுக்கு இடைமுகங்கள் இருப்பதற்கான காரணங்களைச் சொல்ல விரும்புகிறேன். ஒரு குறிப்பிட்ட வகுப்பு, பொருள் அல்லது நிறுவனம் ஒரு குறிப்பிட்ட இடைமுகத்தை ஆதரிக்கிறது என்பதை நீங்கள் அடிக்கடி கேள்விப்படுகிறீர்கள். இடைமுகத்தை ஆதரிப்பது என்றால் என்ன ? "
ஒரு பரந்த பொருளில், எந்தவொரு இடைமுகமும் ஏதோ ஒன்றுடன் தொடர்புகொள்வதற்கான ஒரு பொறிமுறையாகும். எடுத்துக்காட்டாக, டிவி ரிமோட் என்பது தொலை இடைமுகம். ஒரு நாய் கட்டளைகளைப் புரிந்துகொண்டு செயல்படுத்துகிறது, அதாவது நாய் ஒரு குரல் (கட்டுப்பாட்டு) இடைமுகத்தை ஆதரிக்கிறது. எல்லாவற்றையும் சுருக்கமாகச் சொல்வதானால், இடைமுகம் என்பது இரண்டு விஷயங்களைத் தொடர்புகொள்வதற்கான தரப்படுத்தப்பட்ட வழி என்று நாம் கூறலாம், அங்கு இரு தரப்பினரும் தரநிலையை அறிந்திருக்கிறார்கள். ஒரு நபர் ஒரு நாயை "உட்கார்" என்று கூறும்போது, அவரது கட்டளை ஒரு "நாய் குரல் கட்டுப்பாட்டு இடைமுகத்தின்" ஒரு பகுதியாகும், மேலும் நாய் கட்டளைக்கு கீழ்ப்படிந்தால், நாய் இடைமுகத்தை ஆதரிக்கிறது என்று நாங்கள் கூறுகிறோம்.
எனவே இது நிரலாக்கத்தில் உள்ளது. முறைகள் என்பது ஒரு பொருளின் மீது, அதன் தரவுகளில் செய்யப்படும் செயல்கள். ஒரு வகுப்பு சில முறைகளை செயல்படுத்தினால், அது சில கட்டளைகளை "செயல்படுத்துவதை ஆதரிக்கிறது". ஒரு இடைமுகத்தில் முறைகளை இணைப்பதன் மூலம் நாம் என்ன பெறுகிறோம்?
1) ஒவ்வொரு இடைமுகமும் , ஒரு வகுப்பைப் போலவே , ஒரு தனித்துவமான பெயரைக் கொண்டுள்ளது. மற்ற தரப்பினர் தங்களுக்குத் தெரிந்த சரியான இடைமுகத்தை ஆதரிக்கிறார்கள் மற்றும் சில ஒத்த இடைமுகத்தை ஆதரிக்கவில்லை என்பதில் இரு தரப்பினரும் 100% உறுதியாக இருக்க முடியும்.
2) ஒவ்வொரு இடைமுகமும் அதை ஆதரிக்கும் வகுப்பிற்கு சில கட்டுப்பாடுகளை விதிக்கிறது. ஒரு இடைமுகத்திலிருந்து பெறப்பட்ட முறைகள் அழைக்கப்படும்போது என்ன செய்ய வேண்டும் என்பதை வர்க்கம் (அதன் டெவலப்பர்) தீர்மானிக்கிறது, ஆனால் முடிவு நியாயமான எதிர்பார்ப்புகளின் எல்லைக்குள் இருக்க வேண்டும். நாம் ஒரு நாயை "உட்கார்" என்று கட்டளையிட்டால், அது 5 நிமிடங்களுக்கு அந்த இடத்தில் சுழன்று உட்கார்ந்தால், அது இடைமுகத்தை ஆதரிக்கிறது. ஆனால் அதற்கு பதிலாக அது உங்களை காலால் கைப்பற்றினால், அது இடைமுகத்தை ஆதரிக்கிறது என்று நாங்கள் கூற முடியாது. கட்டளையை செயல்படுத்துவது எதிர்பார்த்த பலனைத் தரவில்லை.
நீங்களும் உங்கள் நண்பர்களும் கணினி விளையாட்டை எழுதுகிறீர்கள் என்று வைத்துக்கொள்வோம். ஒரு எழுத்தின் நடத்தையை நிரல் செய்ய நீங்கள் நியமிக்கப்பட்டுள்ளீர்கள். உங்கள் சகாக்களில் ஒருவர் திரையில் அனைத்து எழுத்துகளையும் காட்ட ஏற்கனவே குறியீட்டை எழுதியுள்ளார். விளையாட்டை வட்டில் சேமிப்பதற்குப் பொறுப்பான இரண்டாவது சக ஊழியர், அனைத்து விளையாட்டுப் பொருட்களையும் ஒரு கோப்பில் சேமிக்க குறியீட்டை எழுதியுள்ளார். அவர்கள் ஒவ்வொருவரும் நிறைய குறியீட்டை எழுதி, அந்த குறியீட்டுடன் தொடர்புகொள்வதற்கான இடைமுகத்தை உருவாக்கினர். உதாரணமாக, இது இப்படி இருக்கலாம்:
ஜாவா குறியீடு | விளக்கம் |
---|---|
|
— ஒரு வரைபடத்திலிருந்து ஒரு பொருளைச் சேமிப்பதற்கான / ஏற்றுவதற்கான இடைமுகம். |
|
— கடந்து சென்ற திரைப் பொருளின் உள்ளே ஒரு பொருளை வரைவதற்கான இடைமுகம். |
|
— உங்கள் வகுப்பு, இது இரண்டு இடைமுகங்களை ஆதரிக்கிறது. |
வேறு வார்த்தைகளில் கூறுவதானால், எந்த இடைமுகத்தையும் (இடைமுகங்களின் குழு) ஆதரிக்க, உங்கள் வகுப்பு கண்டிப்பாக:
1) அவற்றைப் பெறுங்கள்
2) அவற்றில் அறிவிக்கப்பட்ட முறைகளை செயல்படுத்தவும்
3) முறைகள் தாங்கள் செய்ய நினைத்ததைச் செய்ய வேண்டும்.
உங்கள் வகுப்பு மற்றும் அதன் பொருள்களைப் பற்றி எதுவும் தெரியாத நிரலின் மீதமுள்ள குறியீடு, உங்கள் வகுப்பில் வேலை செய்ய முடியும்.
"ஏன் என் வகுப்பைப் பற்றி குறியீடு எதுவும் அறிய முடியாது?"
"ஒரு வருடத்திற்கு முன்பு யாரோ ஒருவர் எழுதிய நிரலிலிருந்து நீங்கள் குறியீட்டை எடுத்தீர்கள் என்று வைத்துக்கொள்வோம். அல்லது உங்கள் நண்பர்கள் கேம் இன்ஜினை வேறொருவரிடமிருந்து வாங்கி/உரிமம் பெற்றுள்ளனர் என்று வைத்துக்கொள்வோம். உங்களிடம் கேமிற்கான வேலை குறியீடு உள்ளது. ஒன்றோடொன்று தொடர்பு கொள்ளும் ஆயிரக்கணக்கான பொருள்கள். மேலும் அவை உங்கள் வகுப்புகள் சரியாகச் செயல்படுத்திய இடைமுகங்கள் மூலம் அந்தத் தொடர்பைச் செய்தால், உங்கள் பொருள்களுடன் எளிதில் தொடர்புகொள்ள முடியும் ."
"தொலைவில்! அது சாத்தியம் என்று எனக்குத் தெரியவில்லை."
"அனைத்து பெரிய திட்டங்களும் இப்படித்தான் செயல்படுகின்றன. மக்கள் வெகு காலத்திற்கு முன்பே புதிதாக எழுதுவதை நிறுத்திவிட்டார்கள்."
மக்கள் ஒவ்வொரு முறையும் கணிதம் மற்றும் எழுத்துக்களை மீண்டும் கண்டுபிடிப்பதில்லை. அதற்கு பதிலாக, அவர்கள் தங்களுக்கு முன் கண்டுபிடிக்கப்பட்ட அனைத்தையும் படிக்கிறார்கள்.
GO TO FULL VERSION