"हॅलो, अमिगो! आज मी तुम्हाला सांगेन की « अॅडॉप्टर » म्हणजे नेमके काय आहे. मला आशा आहे की या विषयाबद्दल शिकल्यानंतर तुम्हाला इनपुट/आउटपुट प्रवाहांची अधिक चांगली समज असेल."
कल्पना करा की तुमचा प्रोग्राम इतर प्रोग्रामर/कंपन्यांनी लिहिलेल्या दोन फ्रेमवर्कचा वापर करतो. दोन्ही फ्रेमवर्क खूप चांगले आहेत आणि OOP तत्त्वे वापरतात: अॅब्स्ट्रॅक्शन, पॉलीमॉर्फिझम, एन्कॅप्सुलेशन. एकत्रितपणे, आपल्या प्रोग्रामला काय करण्याची आवश्यकता आहे ते ते जवळजवळ पूर्णपणे कव्हर करतात. तुमच्याकडे एक साधे कार्य बाकी आहे. तुम्हाला एका फ्रेमवर्कने तयार केलेल्या वस्तू दुसऱ्या फ्रेमवर्कमध्ये पास करणे आवश्यक आहे. परंतु दोन्ही फ्रेमवर्क पूर्णपणे भिन्न आहेत आणि "एकमेकांबद्दल माहित नाही", म्हणजे त्यांच्यात कोणतेही वर्ग सामाईक नाहीत. तुम्हाला एका फ्रेमवर्कच्या वस्तू दुसऱ्याच्या वस्तूंमध्ये रूपांतरित करणे आवश्यक आहे.
हे कार्य " अॅडॉप्टर " तंत्र (डिझाइन पॅटर्न) लागू करून सुंदरपणे सोडवले जाऊ शकते :
जावा कोड | वर्णन |
---|---|
|
हे अडॅप्टर डिझाइन नमुना प्रतिबिंबित करते.
मूळ कल्पना अशी आहे की मायक्लास वर्ग एका इंटरफेसला दुसर्या इंटरफेसमध्ये रूपांतरित करतो (अनुकूल करतो). |
"तुम्ही मला आणखी विशिष्ट उदाहरण देऊ शकता का?"
"ठीक आहे. समजा की प्रत्येक फ्रेमवर्कचा स्वतःचा अनन्य "सूची" इंटरफेस असतो. ते कदाचित यासारखे दिसू शकतात:"
जावा कोड | वर्णन |
---|---|
|
पहिल्या ( अल्फा ) फ्रेमवर्कमधील कोड
अल्फालिस्ट हे इंटरफेसपैकी एक आहे जे फ्रेमवर्क कोडला फ्रेमवर्क वापरणाऱ्या कोडशी संवाद साधण्याची परवानगी देते. |
|
अल्फालिस्ट मॅनेजर अल्फालिस्ट मॅनेजर हा फ्रेमवर्कमधील एक वर्ग आहे. त्याची createList पद्धत अल्फालिस्ट ऑब्जेक्ट |
|
दुसऱ्या ( बीटा ) फ्रेमवर्कमधील कोड.
BetaList हे इंटरफेसपैकी एक आहे जे फ्रेमवर्क कोडला फ्रेमवर्क वापरणाऱ्या कोडशी संवाद साधण्याची परवानगी देते. BetaSaveManager हा फ्रेमवर्कमधील एक वर्ग आहे. त्याची saveList पद्धत BetaList ऑब्जेक्ट |
|
"अॅडॉप्टर" वर्ग जो अल्फालिस्ट इंटरफेसमधून बीटालिस्ट इंटरफेसमध्ये रूपांतरित होतो
ListAdapter वर्ग दुसऱ्या फ्रेमवर्कमधून BetaList इंटरफेस लागू करतो . जेव्हा कोणीतरी या पद्धतींवर कॉल करते, तेव्हा क्लास कोड "फॉरवर्ड" सूची व्हेरिएबलवर कॉल करतो, जे पहिल्या फ्रेमवर्कमधील अल्फालिस्ट आहे. AlphaList ऑब्जेक्ट ListAdapter कन्स्ट्रक्टरला पास केले जाते सेटसाइज पद्धत खालील नियमांनुसार कार्य करते: जर सूचीचा आकार वाढवायचा असेल तर, रिक्त (शून्य) आयटम जोडा . सूचीचा आकार कमी करणे आवश्यक असल्यास, शेवटी आयटम हटवा. |
|
ते कसे वापरले जाऊ शकते याचे उदाहरण |
"मला तुझे शेवटचे उदाहरण सर्वात जास्त आवडले. अतिशय संक्षिप्त आणि समजण्यासारखे."
GO TO FULL VERSION