Observer এবং Decorator Patterns

Computer Programming - এপেক্স (Apex) Apex Design Patterns (Apex Design Patterns) |
245
245

Observer Pattern এবং Decorator Pattern হলো দুটি Behavioral Design Patterns, যা Salesforce-এর Apex কোডে বিভিন্ন ক্ষেত্রে ব্যবহৃত হয়।

Observer Pattern

Observer Pattern ব্যবহৃত হয় যখন একটি অবজেক্টের স্টেট পরিবর্তন হলে সেটি সাথে সাথে অন্য অবজেক্টগুলোকেও নোটিফাই করতে হয়। এই প্যাটার্ন সাধারণত Event-Driven সিস্টেমে ব্যবহৃত হয়। Apex-এ, এটি Notifications বা কোনো Event-এর উপর ভিত্তি করে বিভিন্ন শ্রেণীর অবজেক্টকে আপডেট করতে সহায়ক।

উদাহরণ:

ধরুন, আমাদের একটি Order সিস্টেম আছে যেখানে অর্ডার কনফার্ম হলে বিভিন্ন অবজেক্ট, যেমন Email Service, SMS Service, এবং Logging Service, নোটিফাই হবে।

// Observer Interface
public interface Observer {
    void update(String message);
}

// Concrete Observers
public class EmailService implements Observer {
    public void update(String message) {
        System.debug('Sending email: ' + message);
    }
}

public class SMSService implements Observer {
    public void update(String message) {
        System.debug('Sending SMS: ' + message);
    }
}

// Subject Class
public class Order {
    private List<Observer> observers = new List<Observer>();
    
    public void attach(Observer observer) {
        observers.add(observer);
    }
    
    public void detach(Observer observer) {
        observers.remove(observer);
    }
    
    public void notifyObservers(String message) {
        for (Observer observer : observers) {
            observer.update(message);
        }
    }
    
    public void confirmOrder() {
        // Order Confirmation Logic
        System.debug('Order confirmed');
        notifyObservers('Order has been confirmed!');
    }
}

// Usage
public class OrderSystem {
    public static void run() {
        Order order = new Order();
        order.attach(new EmailService());
        order.attach(new SMSService());
        
        order.confirmOrder();
    }
}

Decorator Pattern

Decorator Pattern ব্যবহার করা হয় একটি অবজেক্টে নতুন নতুন behavior যোগ করতে, তাও inheritance ছাড়া। এটি Apex-এ বিশেষভাবে উপকারী যখন runtime-এ object-এর behavior dynamically পরিবর্তন করতে হয়।

উদাহরণ:

ধরুন, আমাদের একটি Notification সিস্টেম আছে, যেখানে আমরা একটি Basic Notification পাঠাতে চাই। কখনো আমরা SMS, কখনো Email, আবার কখনো SMS এবং Email উভয়ই যুক্ত করতে চাই। Decorator Pattern ব্যবহার করে আমরা এই behavior-গুলো যোগ করতে পারি।

// Notifier Interface
public interface Notifier {
    void send();
}

// Basic Notifier
public class BasicNotifier implements Notifier {
    public void send() {
        System.debug('Sending basic notification');
    }
}

// SMS Decorator
public class SMSDecorator extends BasicNotifier {
    private Notifier notifier;
    
    public SMSDecorator(Notifier notifier) {
        this.notifier = notifier;
    }
    
    public void send() {
        notifier.send();
        System.debug('Sending SMS notification');
    }
}

// Email Decorator
public class EmailDecorator extends BasicNotifier {
    private Notifier notifier;
    
    public EmailDecorator(Notifier notifier) {
        this.notifier = notifier;
    }
    
    public void send() {
        notifier.send();
        System.debug('Sending Email notification');
    }
}

// Usage
public class NotificationSystem {
    public static void run() {
        // Basic notification
        Notifier basicNotifier = new BasicNotifier();
        basicNotifier.send();
        
        // SMS notification
        Notifier smsNotifier = new SMSDecorator(basicNotifier);
        smsNotifier.send();
        
        // SMS and Email notification
        Notifier emailSmsNotifier = new EmailDecorator(smsNotifier);
        emailSmsNotifier.send();
    }
}

মূল পয়েন্ট:

  • Observer Pattern: একাধিক অবজেক্টকে একটি অবজেক্টের স্টেট পরিবর্তন হলে নোটিফাই করা হয়।
  • Decorator Pattern: একটি অবজেক্টে নতুন behavior যুক্ত করা হয় inheritance ছাড়াই, runtime-এ behavior পরিবর্তন করা সম্ভব হয়।

এই দুটি Pattern ব্যবহার করে Apex কোডের modularity এবং flexibility বাড়ানো যায়, যা অ্যাপ্লিকেশনকে আরও maintainable করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion