Zbatimi i Parimeve SOLID në Node.js

Single Responsibility Principle(SRP)

Ky parim thotë se një klasë duhet të ketë vetëm një arsye për të ndryshuar, që do të thotë se çdo klasë duhet të kryejë një funksion specifik.

Shembull: Menaxhimi i të dhënave të përdoruesit dhe dërgimi i email njoftimeve.

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

Open/Closed Principle(OCP)

Ky parim inkurajon zgjerimin e funksionalitetit duke shtuar kod të ri në vend të modifikimit të kodit ekzistues.

Shembull: Trajtimi i metodave të ndryshme të pagesës në një aplikacion e-commerce.

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)

Ky parim pohon se objektet e një klase të derivuar duhet të jenë të zëvendësueshme për objektet e klasës bazë pa ndikuar në korrektësinë e programit.

Shembull: Menaxhimi i formave gjeometrike.

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;  
  }  
}  

Parimi i ndarjes së ndërfaqes(ISP)

Ky parim këshillon ndarjen e ndërfaqeve në më të vogla për të shmangur detyrimin e klasave për të zbatuar metoda që nuk u duhen.

Shembull: Ndërfaqet për përditësimin dhe shfaqjen e të dhënave.

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

Dependency Inversion Principle(DIP)

Ky parim sugjeron që modulet e nivelit të lartë nuk duhet të varen nga modulet e nivelit të ulët; të dyja duhet të varen nga abstraksionet.

Shembull: Përdorimi dependency injection për të menaxhuar varësitë.

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

Mbani mend, këta shembuj janë vetëm ilustrime se si të zbatohen SOLID parimet në Node.js. Në praktikë, do t'ju duhet t'i zbatoni ato në mënyrë fleksibël bazuar në qëllimin dhe shkallën e projektit tuaj.