SOLID Prionsabail Chur i bhFeidhm i JavaScript: Samplaí agus Dea-Chleachtais

Single Responsibility Principle(SRP)

Deir an prionsabal seo gur cheart go mbeadh freagracht amháin ar gach rang. Leagtar béim ann gur chóir go ndéanfadh rang feidhm shonrach amháin agus gan an iomarca cúiseanna a bheith acu le hathrú.

Sampla: Faisnéis úsáideora a bhainistiú agus fógraí ríomhphoist a sheoladh.

class UserManager {  
  createUser(userData) {  
    // Logic for creating a user  
  }  
}  
  
class EmailService {  
  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() {  
    // 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)

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() {  
    // Logic for updating feature  
  }  
}  
  
class DisplayableFeature {  
  displayFeature() {  
    // Logic for displaying feature  
  }  
}  

Dependency Inversion Principle(DIP)

Molann an prionsabal seo instealladh spleáchais a úsáid chun spleáchais a bhainistiú.

Sampla: Instealladh spleáchais a úsáid chun spleáchais a bhainistiú.

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

Cuimhnigh gur chóir SOLID prionsabail a chur i bhfeidhm JavaScript go solúbtha bunaithe ar shainchuspóir do thionscadal agus ar do thuiscint ar SOLID agus JavaScript.