Single Responsibility Principle(SRP)
Ez az elv kimondja, hogy egy osztálynak csak egy oka lehet a változásra, vagyis minden osztálynak meghatározott funkciót kell ellátnia.
Példa: Felhasználói adatok kezelése és email értesítések küldése.
class UserManager {
constructor() {}
createUser(userData) {
// Logic for creating a user
}
}
class EmailService {
constructor() {}
sendEmail(emailData) {
// Logic for sending an email
}
}
Open/Closed Principle(OCP)
Ez az elv a meglévő kód módosítása helyett a funkcionalitás bővítését ösztönzi új kód hozzáadásával.
Példa: Különféle fizetési módok kezelése egy e-kereskedelmi alkalmazásban.
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)
Ez az elv azt állítja, hogy a származtatott osztály objektumai helyettesíthetők az alaposztály objektumaival anélkül, hogy ez befolyásolná a program helyességét.
Példa: Geometriai alakzatok kezelése.
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;
}
}
interfész szegregációs elv(ISP)
Ez az elv azt tanácsolja, hogy az interfészeket kisebbre bontsa, nehogy az osztályok olyan módszereket kényszerítsenek, amelyekre nincs szükségük.
Példa: Interfészek adatok frissítéséhez és megjelenítéséhez.
class UpdateableFeature {
updateFeature() {}
}
class DisplayableFeature {
displayFeature() {}
}
Dependency Inversion Principle(DIP)
Ez az elv azt sugallja, hogy a magas szintű modulok nem függhetnek az alacsony szintű moduloktól; mindkettőnek az absztrakciótól kell függnie.
Példa: Használata dependency injection függőségek kezelésére.
class OrderProcessor {
constructor(dbConnection, emailService) {
this.dbConnection = dbConnection;
this.emailService = emailService;
}
}
Ne feledje, hogy ezek a példák csak illusztrációk az SOLID alapelvek alkalmazására vonatkozóan Node.js. A gyakorlatban ezeket rugalmasan kell alkalmaznia a projekt célja és mértéke alapján.