SOLID এর মধ্যে নীতি প্রয়োগ করা JavaScript: উদাহরণ এবং সর্বোত্তম অনুশীলন

Single Responsibility Principle(SRP)

এই নীতিটি বলে যে প্রতিটি শ্রেণীর একটি একক দায়িত্ব থাকা উচিত। এটি জোর দেয় যে একটি ক্লাসের একটি নির্দিষ্ট ফাংশন সম্পাদন করা উচিত এবং পরিবর্তন করার জন্য অনেকগুলি কারণ নেই।

উদাহরণ: ব্যবহারকারীর তথ্য পরিচালনা করা এবং ইমেল বিজ্ঞপ্তি পাঠানো।

class UserManager {  
  createUser(userData) {  
    // Logic for creating a user  
  }  
}  
  
class EmailService {  
  sendEmail(emailData) {  
    // Logic for sending an email  
  }  
}  

Open/Closed Principle(OCP)

এই নীতিটি বিদ্যমান কোড পরিবর্তন না করে নতুন কোড যোগ করে কার্যকারিতা প্রসারিত করতে উৎসাহিত করে।

উদাহরণ: একটি ই-কমার্স অ্যাপ্লিকেশনে বিভিন্ন অর্থপ্রদানের পদ্ধতি পরিচালনা করা।

class PaymentProcessor {  
  processPayment() {  
    // Common logic for payment processing  
  }  
}  
  
class CreditCardPaymentProcessor extends PaymentProcessor {  
  processPayment() {  
    // Logic for processing credit card payment  
  }  
}  
  
class PayPalPaymentProcessor extends PaymentProcessor {  
  processPayment() {  
    // Logic for processing PayPal payment  
  }  
}  

Liskov Substitution Principle(LSP)

এই নীতিটি দাবি করে যে একটি প্রাপ্ত শ্রেণীর বস্তুগুলি প্রোগ্রামের সঠিকতাকে প্রভাবিত না করে বেস শ্রেণীর বস্তুর জন্য প্রতিস্থাপনযোগ্য হওয়া উচিত।

উদাহরণ: জ্যামিতিক আকার পরিচালনা।

class Shape {  
  area() {  
    // Common logic for calculating area  
  }  
}  
  
class Rectangle extends Shape {  
  area() {  
    // Logic for calculating area of rectangle  
  }  
}  
  
class Square extends Shape {  
  area() {  
    // Logic for calculating area of square  
  }  
}  

Interface Segregation Principle(ISP)

এই নীতিটি তাদের প্রয়োজন নেই এমন পদ্ধতিগুলি প্রয়োগ করতে ক্লাসগুলিকে বাধ্য করা এড়াতে ইন্টারফেসগুলিকে ছোটগুলিতে ভাঙার পরামর্শ দেয়।

উদাহরণ: ডেটা আপডেট এবং প্রদর্শনের জন্য ইন্টারফেস।

class UpdateableFeature {  
  updateFeature() {  
    // Logic for updating feature  
  }  
}  
  
class DisplayableFeature {  
  displayFeature() {  
    // Logic for displaying feature  
  }  
}  

Dependency Inversion Principle(DIP)

এই নীতি নির্ভরতা পরিচালনা করার জন্য নির্ভরতা ইনজেকশন ব্যবহার করার পরামর্শ দেয়।

উদাহরণ: নির্ভরতা পরিচালনা করতে নির্ভরতা ইনজেকশন ব্যবহার করা।

class OrderProcessor {  
  constructor(dbConnection, emailService) {  
    this.dbConnection = dbConnection;  
    this.emailService = emailService;  
  }  
}  

মনে রাখবেন যে SOLID নীতিগুলি প্রয়োগ করা আপনার প্রকল্পের নির্দিষ্ট উদ্দেশ্য JavaScript এবং আপনার বোঝার উপর ভিত্তি করে নমনীয়ভাবে করা উচিত SOLID । JavaScript