Overloading (ওভারলোডিং)
ওভারলোডিং (Overloading) একটি প্রোগ্রামিং কনসেপ্ট যা একটি ক্লাস বা অবজেক্টের মধ্যে একাধিক মেথডের একই নাম থাকতে পারে, তবে প্রতিটি মেথডের প্যারামিটার সংখ্যা বা টাইপ আলাদা থাকে। এই ধারণাটি বেশিরভাগ ভাষায় সমর্থিত, তবে Objective-C তে মেথড ওভারলোডিং সরাসরি সমর্থিত নয়। এর পরিবর্তে, আপনি প্যারামিটার টাইপের ভিত্তিতে ভিন্ন মেথড তৈরি করতে পারেন।
Objective-C তে মেথড সিগনেচার (Method Signature) পরিবর্তন করে মেথডগুলিকে আলাদা করা হয়, এবং এর মাধ্যমে আপনি মেথডগুলোকে পুনরায় ব্যবহার করতে পারেন।
উদাহরণ:
Objective-C তে ওভারলোডিং সঠিকভাবে সম্ভব না হলেও, আমরা মেথড সাইনেচার এর মাধ্যমে প্যারামিটার সংখ্যা বা টাইপ অনুযায়ী আলাদা মেথড তৈরি করতে পারি।
@interface Calculator : NSObject
- (int)additionWithNumber:(int)a andNumber:(int)b; // প্রথম মেথড
- (float)additionWithNumber:(float)a andNumber:(float)b; // দ্বিতীয় মেথড (বিভিন্ন প্যারামিটার টাইপ)
@end
@implementation Calculator
- (int)additionWithNumber:(int)a andNumber:(int)b {
return a + b;
}
- (float)additionWithNumber:(float)a andNumber:(float)b {
return a + b;
}
@endএখানে, দুটি মেথড additionWithNumber:andNumber: একে অপরকে ওভারলোড করছে কারণ তাদের প্যারামিটার টাইপ আলাদা। এইভাবেই আপনি Objective-C তে মেথড "ওভারলোড" করতে পারেন।
Method Chaining (মেথড চেইনিং)
মেথড চেইনিং (Method Chaining) একটি প্রোগ্রামিং কনসেপ্ট যেখানে আপনি একাধিক মেথড কল করতে পারেন এক লাইনে, একটি মেথডের রিটার্ন ভ্যালু পরবর্তী মেথডের ইনপুট হিসেবে ব্যবহার করা হয়। এটি সাধারণত Fluent Interface ডিজাইন প্যাটার্নের একটি অংশ হিসেবে ব্যবহৃত হয়।
Objective-C তে মেথড চেইনিং সাধারণত অবজেক্ট রিটার্ন করার মাধ্যমে কাজ করে, যাতে একাধিক মেথড একে একে কল করা যায়।
উদাহরণ:
@interface Person : NSObject
@property NSString *name;
@property int age;
- (Person *)setName:(NSString *)name;
- (Person *)setAge:(int)age;
@end
@implementation Person
- (Person *)setName:(NSString *)name {
_name = name;
return self; // অবজেক্টটি রিটার্ন হচ্ছে
}
- (Person *)setAge:(int)age {
_age = age;
return self; // অবজেক্টটি রিটার্ন হচ্ছে
}
@end
// মেথড চেইনিং ব্যবহার
Person *person = [[Person alloc] init];
[person setName:@"John"].setAge(30); // এক লাইনে একাধিক মেথড কলএখানে, setName: এবং setAge: মেথডগুলো অবজেক্টের রেফারেন্স (self) রিটার্ন করে, ফলে আপনি একাধিক মেথডকে এক লাইনে চেইন করে কল করতে পারেন।
সারাংশ
- Overloading: Objective-C তে মেথড ওভারলোডিং সরাসরি সমর্থিত নয়, তবে আপনি মেথড সিগনেচার পরিবর্তন করে (প্যারামিটার সংখ্যা বা টাইপ পরিবর্তন করে) একাধিক মেথড তৈরি করতে পারেন যা কার্যকরভাবে ওভারলোডিংয়ের মতো কাজ করে।
- Method Chaining: মেথড চেইনিং একটি শক্তিশালী কৌশল যেখানে একাধিক মেথড একে অপরকে কল করে। এটি সাধারণত অবজেক্ট রিটার্ন করে, যা আপনাকে এক লাইনে একাধিক মেথড কল করতে সক্ষম করে।
এখন আপনি এই কৌশলগুলো ব্যবহার করে Objective-C তে আরও বেশি কার্যকরী কোড লিখতে পারবেন।
Read more