"হ্যালো, অ্যামিগো! আজ আমি আপনাকে বলবো একটি « অ্যাডাপ্টার » আসলে কী। আমি আশা করি এই বিষয় সম্পর্কে জানার পর আপনি ইনপুট/আউটপুট স্ট্রীম সম্পর্কে আরও ভালোভাবে বুঝতে পারবেন।"

কল্পনা করুন আপনার প্রোগ্রামটি অন্যান্য প্রোগ্রামার/কোম্পানীর দ্বারা লিখিত দুটি ফ্রেমওয়ার্ক ব্যবহার করে। উভয় কাঠামোই খুব ভাল এবং OOP নীতিগুলি ব্যবহার করে: বিমূর্ততা, পলিমরফিজম, এনক্যাপসুলেশন। একসাথে, তারা প্রায় সম্পূর্ণরূপে আপনার প্রোগ্রাম যা করতে হবে কভার. আপনি একটি সহজ কাজ বাকি আছে. আপনাকে একটি ফ্রেমওয়ার্ক দ্বারা তৈরি বস্তুগুলিকে অন্য কাঠামোতে পাস করতে হবে। কিন্তু উভয় ফ্রেমওয়ার্ক সম্পূর্ণ ভিন্ন এবং "একে অপরের সম্পর্কে জানেন না", অর্থাৎ তাদের মধ্যে কোনো ক্লাস মিল নেই। আপনাকে কোনোভাবে এক ফ্রেমওয়ার্কের অবজেক্টকে অন্যের অবজেক্টে রূপান্তর করতে হবে।
এই কাজটি " অ্যাডাপ্টার " কৌশল (ডিজাইন প্যাটার্ন) প্রয়োগ করে সুন্দরভাবে সমাধান করা যেতে পারে :
জাভা কোড | বর্ণনা |
---|---|
|
এটি অ্যাডাপ্টারের নকশা প্যাটার্ন প্রতিফলিত করে।
মূল ধারণা হল MyClass ক্লাস একটি ইন্টারফেসকে অন্য ইন্টারফেসে রূপান্তর করে (অ্যাডাপ্ট করে)। |
"আপনি কি আমাকে আরও নির্দিষ্ট উদাহরণ দিতে পারেন?"
"ঠিক আছে। ধরা যাক যে প্রতিটি ফ্রেমওয়ার্কের নিজস্ব অনন্য "তালিকা" ইন্টারফেস আছে। সেগুলি দেখতে এরকম কিছু হতে পারে:"
জাভা কোড | বর্ণনা |
---|---|
|
প্রথম ( আলফা ) ফ্রেমওয়ার্ক থেকে কোড
আলফালিস্ট হল এমন একটি ইন্টারফেস যা ফ্রেমওয়ার্ক কোডকে ফ্রেমওয়ার্ক ব্যবহার করে এমন কোডের সাথে ইন্টারফেস করতে দেয়। |
|
AlphaList Manager AlphaListManager হল ফ্রেমওয়ার্কের একটি ক্লাস। এর createList পদ্ধতি একটি AlphaList অবজেক্ট |
|
দ্বিতীয় ( বিটা ) ফ্রেমওয়ার্ক থেকে কোড।
BetaList হল এমন একটি ইন্টারফেস যা ফ্রেমওয়ার্ক কোডকে ফ্রেমওয়ার্ক ব্যবহার করে এমন কোডের সাথে ইন্টারঅ্যাক্ট করতে দেয়। BetaSaveManager হল ফ্রেমওয়ার্কের একটি ক্লাস। এর saveList পদ্ধতি একটি BetaList অবজেক্ট |
|
"অ্যাডাপ্টার" ক্লাস যা আলফালিস্ট ইন্টারফেস থেকে বিটালিস্ট ইন্টারফেসে রূপান্তরিত করে
ListAdapter ক্লাস দ্বিতীয় ফ্রেমওয়ার্ক থেকে BetaList ইন্টারফেস প্রয়োগ করে । যখন কেউ এই পদ্ধতিগুলিকে কল করে, ক্লাস কোড "ফরোয়ার্ড" কলগুলিকে তালিকা ভেরিয়েবলে দেয়, যা প্রথম কাঠামো থেকে একটি আলফালিস্ট । একটি AlphaList অবজেক্ট ListAdapter কনস্ট্রাক্টরের কাছে পাঠানো হয় সেটসাইজ পদ্ধতিটি নিম্নলিখিত নিয়ম অনুসারে কাজ করে: যদি তালিকার আকার অবশ্যই বাড়াতে হবে, খালি (নাল) আইটেম যোগ করুন । তালিকার আকার কমাতে হলে, শেষে আইটেম মুছে দিন। |
|
এটি কীভাবে ব্যবহার করা যেতে পারে তার একটি উদাহরণ |
"আমি আপনার শেষ উদাহরণটি সবচেয়ে পছন্দ করেছি। খুব সংক্ষিপ্ত এবং বোধগম্য।"
GO TO FULL VERSION