Single Responsibility Principle(SRP)
Deir an prionsabal seo nár cheart go mbeadh ach cúis amháin ag rang le hathrú, rud a chiallaíonn gur chóir go ndéanfadh gach rang feidhm ar leith.
Sampla: Sonraí úsáideoirí a bhainistiú agus email fógraí a sheoladh.
class UserManager {
constructor() {}
createUser(userData) {
// Logic for creating a user
}
}
class EmailService {
constructor() {}
sendEmail(emailData) {
// Logic for sending an email
}
}
Open/Closed Principle(OCP)
Spreagann an prionsabal seo feidhmiúlacht a leathnú trí chód nua a chur leis seachas an cód atá ann cheana a mhodhnú.
Sampla: Láimhseáil modhanna íocaíochta éagsúla in iarratas ríomhthráchtála.
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)
Dearbhaíonn an prionsabal seo gur cheart réada d’aicme díorthaithe a chur in ionad rudaí den bhunaicme gan cur isteach ar chruinneas an chláir.
Sampla: Cruthanna geoiméadracha a bhainistiú.
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;
}
}
Prionsabal Scartha comhéadan(ISP)
Moltar leis an bprionsabal seo comhéadain a bhriseadh ina gcomhéadain níos lú chun iallach a chur ar ranganna modhanna a chur i bhfeidhm nach bhfuil gá leo.
Sampla: Comhéadain chun sonraí a nuashonrú agus a thaispeáint.
class UpdateableFeature {
updateFeature() {}
}
class DisplayableFeature {
displayFeature() {}
}
Dependency Inversion Principle(DIP)
Tugann an prionsabal seo le tuiscint nár cheart go mbeadh modúil ardleibhéil ag brath ar mhodúil ísealleibhéil; ba cheart go mbeadh an dá rud ag brath ar astarraingtí.
Sampla: Úsáid dependency injection chun spleáchais a bhainistiú.
class OrderProcessor {
constructor(dbConnection, emailService) {
this.dbConnection = dbConnection;
this.emailService = emailService;
}
}
Cuimhnigh nach bhfuil sna samplaí seo ach léaráidí ar conas na SOLID prionsabail a chur i bhfeidhm i Node.js. Go praiticiúil, beidh ort iad a chur i bhfeidhm go solúbtha bunaithe ar chuspóir agus scála do thionscadail.