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 । অনুশীলনে, আপনার প্রকল্পের উদ্দেশ্য এবং স্কেলের উপর ভিত্তি করে আপনাকে নমনীয়ভাবে সেগুলি প্রয়োগ করতে হবে।