Single Responsibility Principle(SRP)
To načelo navaja, da mora imeti razred samo en razlog za spremembo, kar pomeni, da mora vsak razred opravljati določeno funkcijo.
Primer: Upravljanje uporabniških podatkov in pošiljanje email obvestil.
class UserManager {
constructor() {}
createUser(userData) {
// Logic for creating a user
}
}
class EmailService {
constructor() {}
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() {}
}
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;
}
}
Načelo ločevanja vmesnikov(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() {}
}
class DisplayableFeature {
displayFeature() {}
}
Dependency Inversion Principle(DIP)
To načelo nakazuje, da moduli na visoki ravni ne bi smeli biti odvisni od modulov na nizki ravni; oboje bi moralo biti odvisno od abstrakcij.
Primer: Uporaba dependency injection za upravljanje odvisnosti.
class OrderProcessor {
constructor(dbConnection, emailService) {
this.dbConnection = dbConnection;
this.emailService = emailService;
}
}
Ne pozabite, da so ti primeri le ilustracije, kako uporabiti SOLID načela v Node.js. V praksi jih boste morali uporabljati prilagodljivo glede na namen in obseg vašega projekta.