Optional এবং Required Methods এর পার্থক্য

Protocols এবং Delegation (প্রোটোকল এবং ডেলিগেশন) - অবজেক্টিভ-সি (Objective-C) - Computer Programming

243

Objective-C তে Optional এবং Required মেথড দুটি গুরুত্বপূর্ণ ধারণা, যা প্রোটোকল (protocol) এর সাথে সম্পর্কিত। প্রোটোকল একটি চুক্তি, যা ক্লাসকে কিছু নির্দিষ্ট মেথড বা প্রপার্টি ইমপ্লিমেন্ট করতে বলে। এখানে Optional এবং Required মেথডের মধ্যে পার্থক্য কী তা বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে।


১. Required Methods

Required methods হল এমন মেথড যেগুলি একটি প্রোটোকল অনুসরণকারী ক্লাসকে অবশ্যই ইমপ্লিমেন্ট করতে হবে। যদি একটি ক্লাস একটি প্রোটোকল কনফর্ম করে, তবে সেই ক্লাসকে প্রোটোকলে ডিফাইন করা Required methods গুলি অবশ্যই ইমপ্লিমেন্ট করতে হবে। Required methods ক্লাসের জন্য বাধ্যতামূলক এবং এটি ক্লাসের কাজের জন্য অপরিহার্য।

উদাহরণ:

#import <Foundation/Foundation.h>

@protocol AnimalDelegate <NSObject>
@required  // Required মেথড
- (void) makeSound;
@end

@interface Dog : NSObject <AnimalDelegate>
@end

@implementation Dog
- (void) makeSound {
    NSLog(@"Bark");
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Dog *myDog = [[Dog alloc] init];
        [myDog makeSound];  // Required মেথডটি ইমপ্লিমেন্ট করা হয়েছে
    }
    return 0;
}

বিশেষ দৃষ্টি:

  • @required: এটি প্রোটোকলে ডিফাইন করা মেথডকে বাধ্যতামূলক করে তোলে।
  • ক্লাস DogmakeSound মেথডটি প্রোটোকল অনুসরণ করার জন্য ইমপ্লিমেন্ট করতে হয়েছে।

২. Optional Methods

Optional methods হল এমন মেথড যেগুলি একটি প্রোটোকল অনুসরণকারী ক্লাসকে ইচ্ছামত ইমপ্লিমেন্ট করতে হয়। এটি শুধুমাত্র একটি বিকল্প, এবং ক্লাসের জন্য এগুলি ইমপ্লিমেন্ট করা বাধ্যতামূলক নয়। যদি একটি ক্লাস একটি প্রোটোকলের Optional মেথড ইমপ্লিমেন্ট না করে, তবে তাও কোনও সমস্যা নেই এবং এটি সঠিকভাবে কাজ করবে।

উদাহরণ:

#import <Foundation/Foundation.h>

@protocol AnimalDelegate <NSObject>
@optional  // Optional মেথড
- (void) sleep;
@end

@interface Cat : NSObject <AnimalDelegate>
@end

@implementation Cat
- (void) sleep {
    NSLog(@"The cat is sleeping");
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Cat *myCat = [[Cat alloc] init];
        [myCat sleep];  // Optional মেথডটি ইমপ্লিমেন্ট করা হয়েছে
    }
    return 0;
}

বিশেষ দৃষ্টি:

  • @optional: এটি প্রোটোকলে ডিফাইন করা মেথডকে ঐচ্ছিক করে তোলে, অর্থাৎ ক্লাসের পক্ষে তা ইমপ্লিমেন্ট না করলেও চলবে।
  • ক্লাস Catsleep মেথডটি Optional হওয়ায় এটি শুধুমাত্র ইচ্ছামত ইমপ্লিমেন্ট করা হয়েছে।

Optional এবং Required Methods এর মধ্যে পার্থক্য

বৈশিষ্ট্যRequired MethodsOptional Methods
বাধ্যতামূলকহ্যাঁ, ক্লাসকে ইমপ্লিমেন্ট করতে হয়না, ক্লাস ইচ্ছামত ইমপ্লিমেন্ট করতে পারে
@required বা @optional নির্দেশক@required ব্যবহার করা হয়@optional ব্যবহার করা হয়
প্রোটোকল ফলো করার জন্য ক্লাসের দায়িত্বRequired মেথড ইমপ্লিমেন্ট করা বাধ্যতামূলকOptional মেথড ইমপ্লিমেন্ট করা ঐচ্ছিক
ক্লাসের কাজের জন্য অপরিহার্যতাএটি ক্লাসের কাজের জন্য অপরিহার্যএটি ঐচ্ছিক এবং ক্লাসের কার্যকারিতার জন্য অপরিহার্য নয়

সারাংশ

  • Required methods: প্রোটোকলে ডিফাইন করা মেথড গুলি একটি ক্লাসকে অবশ্যই ইমপ্লিমেন্ট করতে হয়, এটি ক্লাসের কাজের জন্য অপরিহার্য।
  • Optional methods: প্রোটোকলে ডিফাইন করা মেথড গুলি ইচ্ছামত ইমপ্লিমেন্ট করা হয়, এবং এটি ক্লাসের কাজের জন্য অপরিহার্য নয়।

Objective-C তে এই দুটি বৈশিষ্ট্য প্রোটোকলের মাধ্যমে ক্লাসের আচরণ কাস্টমাইজ করতে সাহায্য করে এবং কোডের নমনীয়তা বৃদ্ধি করে।

Content added By
Promotion

Are you sure to start over?

Loading...