What is Single Responsibility Principle (SRP)?
A class should have one reason to change.
Bad Example
javascript
// Too many responsibilities!
class User {
constructor(data) {
this.data = data;
}
save() {
// Database logic
db.insert(this.data);
}
sendEmail() {
// Email logic
mailer.send(this.data.email);
}
generateReport() {
// Report logic
return pdf.create(this.data);
}
}Good Example
javascript
// Single responsibility: User data
class User {
constructor(data) {
this.data = data;
}
}
// Single responsibility: Database
class UserRepository {
save(user) {
db.insert(user.data);
}
}
// Single responsibility: Email
class UserEmailService {
sendWelcome(user) {
mailer.send(user.data.email);
}
}
// Single responsibility: Reports
class UserReportGenerator {
generate(user) {
return pdf.create(user.data);
}
}Short Answer
Interview readyPremium
A concise answer to help you respond confidently on this topic during an interview.