Private Methods এবং Extensions এর ব্যবহারিক উদাহরণ

Categories এবং Extensions (ক্যাটেগরি এবং এক্সটেনশন) - অবজেক্টিভ-সি (Objective-C) - Computer Programming

261

Objective-C তে Private Methods এবং Extensions দুটি শক্তিশালী কনসেপ্ট, যা ক্লাসের আচরণ এবং কনট্রোল আরও সুরক্ষিত এবং সুসংগঠিত করতে সাহায্য করে। Private Methods ক্লাসের বাইরের কোড থেকে অ্যাক্সেস করা যায় না, এবং Extensions এর মাধ্যমে ক্লাসে নতুন মেথড বা প্রপার্টি যোগ করা হয় যা মূল ক্লাসের বাইরে থাকে।

এখানে, আমরা Private Methods এবং Extensions এর বাস্তব ব্যবহার এবং তাদের উদাহরণ আলোচনা করব।


1. Private Methods (প্রাইভেট মেথডস)

Private Methods হল মেথডগুলি যা শুধুমাত্র ক্লাসের ভিতরে অ্যাক্সেসযোগ্য এবং ক্লাসের বাইরের কোড থেকে সরাসরি কল করা যায় না। প্রাইভেট মেথড ব্যবহারের মাধ্যমে আমরা ক্লাসের অভ্যন্তরীণ কাজগুলো সুরক্ষিত রাখি এবং বাইরের কোডকে সীমিত করি।

Private Method এর সিনট্যাক্স:

Objective-C তে private methods সাধারণত @interface ব্লকের মধ্যে @private কিওয়ার্ড ব্যবহার করে ডিক্লেয়ার করা হয়।

উদাহরণ:

// Car.h
@interface Car : NSObject
@property NSString *model;

- (void) startEngine;  // Public Method
@end

// Car.m
@interface Car ()  // Private Methods ডিক্লেয়ারেশন
- (void) privateCheckEngine;  // Private Method
@end

@implementation Car

- (void) startEngine {
    NSLog(@"Engine started");
    [self privateCheckEngine];  // Private method call
}

- (void) privateCheckEngine {
    NSLog(@"Checking engine...");
}

@end

int main() {
    @autoreleasepool {
        Car *myCar = [[Car alloc] init];
        [myCar startEngine];  // Public method call
        // [myCar privateCheckEngine];  // Error: Private method cannot be accessed directly
    }
    return 0;
}

ব্যাখ্যা:

  • privateCheckEngine মেথডটি Car ক্লাসের ভিতরে private রাখা হয়েছে, অর্থাৎ এটি শুধু ক্লাসের অভ্যন্তরে অ্যাক্সেসযোগ্য। বাইরের কোডে এটি সরাসরি অ্যাক্সেস করা যাবে না, যেমন privateCheckEngine মেথডটি startEngine মেথড থেকে কল করা হয়েছে, তবে বাইরের কোড থেকে এটি কল করা যাবে না।
  • @interface Car () এর মাধ্যমে private methods ডিক্লেয়ার করা হয়েছে।

2. Extensions (এক্সটেনশন)

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

Extensions এর সিনট্যাক্স:

এক্সটেনশন সাধারণত ক্লাসের অভ্যন্তরে একটি আলাদা ব্লক হিসেবে ডিক্লেয়ার করা হয় এবং এটি ক্লাসের প্রাইভেট অংশ হিসেবে কাজ করে।

উদাহরণ:

// Car.h
@interface Car : NSObject
@property NSString *model;

- (void) startEngine;  // Public method
@end

// Car.m
@interface Car ()  // Extension - Private Methods
@property (nonatomic, strong) NSString *engineStatus;
- (void) privateCheckEngine;  // Private Method in Extension
@end

@implementation Car

- (void) startEngine {
    NSLog(@"Engine started");
    [self privateCheckEngine];  // Calling private method
}

- (void) privateCheckEngine {
    NSLog(@"Checking engine...");
}

@end

int main() {
    @autoreleasepool {
        Car *myCar = [[Car alloc] init];
        [myCar startEngine];  // Public method call
        // [myCar privateCheckEngine];  // Error: Cannot call private method directly
    }
    return 0;
}

ব্যাখ্যা:

  • Extensions ব্যবহার করে, Car ক্লাসে engineStatus নামে একটি প্রাইভেট প্রপার্টি এবং privateCheckEngine নামে একটি প্রাইভেট মেথড ডিক্লেয়ার করা হয়েছে।
  • এক্সটেনশনটি ক্লাসের মধ্যে একটি সুরক্ষিত জায়গায় প্রাইভেট মেথড এবং প্রপার্টি অন্তর্ভুক্ত করতে সহায়তা করে।

3. Private Methods এবং Extensions এর মধ্যে সম্পর্ক

  • Private Methods: ক্লাসের অভ্যন্তরীণ কাজের জন্য ব্যবহৃত মেথড, যা বাইরের কোড থেকে অ্যাক্সেস করা যাবে না। এটি ক্লাসের নির্দিষ্ট আচরণ সংরক্ষণ এবং কোড নিরাপত্তা নিশ্চিত করতে ব্যবহৃত হয়।
  • Extensions: ক্লাসের অতিরিক্ত কার্যকারিতা বা প্রপার্টি যোগ করতে ব্যবহৃত হয়। এক্সটেনশন সাধারণত প্রাইভেট মেথড বা প্রপার্টি সংজ্ঞায়িত করতে ব্যবহৃত হয় এবং এগুলি ক্লাসের বাইরের কোড থেকে সরাসরি এক্সেসযোগ্য নয়।

Extensions হল Private Methods রাখার সবচেয়ে ভালো উপায়, কারণ এতে আপনি ক্লাসের অভ্যন্তরীণ কাজগুলিকে বাইরের কোড থেকে লুকিয়ে রাখতে পারেন, কিন্তু একই সাথে ক্লাসের আচরণ বাড়াতে পারেন।


সারাংশ:

  • Private Methods হল ক্লাসের ভিতরে থাকা মেথড যা বাইরের কোড থেকে অ্যাক্সেসযোগ্য নয়। এটি সাধারণত ক্লাসের অভ্যন্তরীণ কার্যাবলি সংরক্ষণ করার জন্য ব্যবহৃত হয়।
  • Extensions হল এমন একটি উপায় যার মাধ্যমে আপনি ক্লাসের মধ্যে নতুন মেথড বা প্রপার্টি যোগ করতে পারেন যা ক্লাসের বাইরের কোড থেকে এক্সেসযোগ্য নয়।
  • Private Methods এবং Extensions একত্রে ব্যবহার করা হলে কোড নিরাপদ, পরিষ্কার এবং সহজভাবে পরিচালনা করা সম্ভব হয়।

এটি ছিল Objective-C তে Private Methods এবং Extensions এর ব্যবহারিক উদাহরণ।

Content added By
Promotion

Are you sure to start over?

Loading...