Vivasoft-logo

Extension Method

এক্সটেনশন মেথড ডার্টের একটি ফীচার যা ডেভেলপারদের তাদের এক্সসিস্টইং ইমপ্লিমেন্টেশন পরিবর্তন না করেই এক্সসিস্টইং ক্লাস বা ইন্টারফেসে নতুন মেথড যুক্ত করতে দেয়। এই মেথড গুলো এমন ভাবে ব্যবহার করা যেতে পারে যেন তারা মূল ক্লাসের অংশ। অন্য কথায়, এক্সটেনশনগুলি ডেভেলপারদের একটি ক্লাস বা ইন্টারফেসে functionality যোগ করতে সক্ষম করে যা তারা লেখেনি এবং নিয়ন্ত্রণ করে না।

একটি এক্সটেনশন মেথড হল একটি স্ট্যাটিক পদ্ধতি যা একটি ক্লাসের মধ্যে ডিফাইন করা হয় যার একটি রিসিভার প্যারামিটার রয়েছে। রিসিভার প্যারামিটার হল সেই অবজেক্ট যেখানে মেথড অ্যাপ্লায়েড করা হয়। একটি এক্সটেনশন মেথড ডিক্লেয়ার করার জন্য সিনট্যাক্স নিম্নরূপ:

extension ExtensionName on ClassName { 
	ReturnType methodName(ParameterType parameter) { 
		// implementation 
	} 
}
 

এই সিনট্যাক্সে, ExtensionName হল এক্সটেনশনের নাম এবং ClassName হল এক্সটেনশন ক্লাসের নাম। ReturnType হল এক্সটেনশন মেথড যে ভ্যালু রিটার্ন করছে তার টাইপ। মেথডনেম হল মেথডের নাম যা অ্যাড করা হচ্ছে এবং প্যারামিটার টাইপ হল প্যারামিটারের টাইপ যা মেথডে পাস করা হচ্ছে।

উদাহরণস্বরূপ, ধরুন আমাদের একটি name প্রপার্টি সহ একটি Person ক্লাস রয়েছে। আমরা একটি এক্সটেনশন মেথড তৈরি করতে পারি যা একটি Person অবজেক্টকে তার রিসিভার প্যারামিটার হিসাবে নেয় এবং একটি স্ট্রিং রিটার্ন করে যা নাম দ্বারা ব্যক্তিকে অভিবাদন জানায় :

extension Greeting on Person { 
	String greet() { 
		return 'Hello, ${this.name}!'; 
	} 
}
 

এখন, Person ক্লাস এর একটি ইনস্ট্যান্স তৈরি করা যাক এবং এটিতে এক্সটেনশন মেথড কল করি:

void main() { 
	Person person = Person('John'); 
	print(person.greet()); 
} 

// output: Hello, John!