SOLID নীতিমালা প্রয়োগ করা Node.js

Single Responsibility Principle(SRP)

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

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

class UserManager {  
  constructor() {}  
    
  createUser(userData) {  
    // Logic for creating a user  
  }  
}  
  
class EmailService {  
  constructor() {}  
    
  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() {}  
}  
  
class Rectangle extends Shape {  
  constructor(width, height) {}  
    
  area() {  
    return this.width * this.height;  
  }  
}  
  
class Square extends Shape {  
  constructor(side) {}  
    
  area() {  
    return this.side * this.side;  
  }  
}  

nterface segregation Principle(ISP)

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

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

class UpdateableFeature {  
  updateFeature() {}  
}  
  
class DisplayableFeature {  
  displayFeature() {}  
}  

Dependency Inversion Principle(DIP)

এই নীতিটি পরামর্শ দেয় যে উচ্চ-স্তরের মডিউলগুলি নিম্ন-স্তরের মডিউলগুলির উপর নির্ভর করা উচিত নয়; উভয় বিমূর্ততা উপর নির্ভর করা উচিত.

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

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

SOLID মনে রাখবেন, এই উদাহরণগুলি কীভাবে নীতিগুলি প্রয়োগ করতে হয় তার উদাহরণ Node.js । অনুশীলনে, আপনার প্রকল্পের উদ্দেশ্য এবং স্কেলের উপর ভিত্তি করে আপনাকে নমনীয়ভাবে সেগুলি প্রয়োগ করতে হবে।