Skip to main content
Practice Problems

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 ready
Premium

A concise answer to help you respond confidently on this topic during an interview.

Finished reading?
Practice Problems