Uporaba SOLID načel v JavaScript: Primeri in najboljše prakse

Single Responsibility Principle(SRP)

To načelo določa, da mora imeti vsak razred eno samo odgovornost. Poudarja, da mora razred opravljati eno specifično funkcijo in ne sme imeti preveč razlogov za spremembo.

Primer: Upravljanje uporabniških podatkov in pošiljanje e-poštnih obvestil.

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

Open/Closed Principle(OCP)

To načelo spodbuja razširitev funkcionalnosti z dodajanjem nove kode namesto s spreminjanjem obstoječe kode.

Primer: Upravljanje z različnimi načini plačila v aplikaciji za e-trgovino.

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)

To načelo trdi, da morajo biti objekti izpeljanega razreda nadomestljivi za objekte osnovnega razreda, ne da bi to vplivalo na pravilnost programa.

Primer: Upravljanje geometrijskih oblik.

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)

To načelo svetuje razdelitev vmesnikov na manjše, da bi se izognili prisili razredov k izvajanju metod, ki jih ne potrebujejo.

Primer: Vmesniki za posodabljanje in prikazovanje podatkov.

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

Dependency Inversion Principle(DIP)

To načelo predlaga uporabo vbrizgavanja odvisnosti za upravljanje odvisnosti.

Primer: uporaba vbrizgavanja odvisnosti za upravljanje odvisnosti.

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

SOLID Ne pozabite, da je treba načela uporabljati JavaScript prožno glede na poseben namen vašega projekta in vaše razumevanje SOLID in JavaScript.