Bird
Raised Fist0
LLDsystem_design~5 mins

Single Responsibility Principle in LLD - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the Single Responsibility Principle (SRP)?
SRP means a class or module should have only one reason to change. It should do one job only.
Click to reveal answer
beginner
Why is SRP important in system design?
It makes code easier to understand, test, and maintain. Changes in one part don't affect others.
Click to reveal answer
beginner
Give a real-life example of SRP.
A car's steering system only controls direction. It doesn't handle engine or brakes. Each part has one job.
Click to reveal answer
intermediate
What can happen if SRP is ignored?
Classes become complex and hard to fix. One change may break many things, causing bugs.
Click to reveal answer
intermediate
How does SRP relate to maintainability?
With SRP, each part is simple and focused. This makes fixing and updating easier and safer.
Click to reveal answer
What does the Single Responsibility Principle state?
AA class should be as large as possible
BA class should handle multiple responsibilities
CA class should have only one reason to change
DA class should never change
Which is a benefit of following SRP?
ACode is easier to maintain
BChanges in one part affect many others
CCode becomes harder to test
DClasses become more complex
Ignoring SRP can lead to:
ASimpler code
BMore bugs and complex classes
CFaster development always
DNo impact on design
Which example best follows SRP?
AA class that manages user login and payment processing
BA class that changes for many reasons
CA class that does everything in the system
DA class that only handles user authentication
SRP helps in:
AImproving code maintainability
BReducing code readability
CMaking classes do many jobs
DIncreasing coupling
Explain the Single Responsibility Principle and why it matters in system design.
Think about how one class should do only one job.
You got /3 concepts.
    Describe a real-life analogy that helps understand SRP.
    Consider parts of a car or kitchen tools.
    You got /2 concepts.

      Practice

      (1/5)
      1. What does the Single Responsibility Principle (SRP) mean in simple terms?
      easy
      A. A class should handle multiple tasks to reduce the number of classes.
      B. Each class or module should have only one job or responsibility.
      C. All functions should be written in a single class for simplicity.
      D. Classes should share responsibilities to improve collaboration.

      Solution

      1. Step 1: Understand the principle's core idea

        The Single Responsibility Principle states that a class or module should have one and only one reason to change, meaning it should do one job.
      2. Step 2: Match the explanation to the options

        Each class or module should have only one job or responsibility. clearly states that each class or module should have only one job, which matches the principle.
      3. Final Answer:

        Each class or module should have only one job or responsibility. -> Option B
      4. Quick Check:

        Single Responsibility Principle = One job per class [OK]
      Hint: One class, one job keeps code clean and simple [OK]
      Common Mistakes:
      • Thinking one class should do many tasks
      • Believing all code should be in one place
      • Confusing SRP with code reuse
      2. Which of the following class names best follows the Single Responsibility Principle?
      easy
      A. UserAuthenticator
      B. DataProcessorAndReportGenerator
      C. UserManagerAndLogger
      D. FileHandlerAndNetworkSender

      Solution

      1. Step 1: Analyze class names for single responsibility

        Classes with multiple responsibilities in their names violate SRP. UserManagerAndLogger, DataProcessorAndReportGenerator, and FileHandlerAndNetworkSender suggest multiple jobs.
      2. Step 2: Identify the class with one clear responsibility

        UserAuthenticator clearly focuses on one task: authenticating users, which aligns with SRP.
      3. Final Answer:

        UserAuthenticator -> Option A
      4. Quick Check:

        Class name with one job = UserAuthenticator [OK]
      Hint: Class name shows one clear job means SRP followed [OK]
      Common Mistakes:
      • Choosing classes with multiple jobs in name
      • Ignoring SRP and mixing responsibilities
      • Assuming longer names are better
      3. Given this Python class, what is the main SRP violation?
      class OrderProcessor:
          def process_order(self, order):
              self.validate_order(order)
              self.save_order(order)
              self.send_confirmation_email(order)
      
          def validate_order(self, order):
              pass
      
          def save_order(self, order):
              pass
      
          def send_confirmation_email(self, order):
              pass
      
      medium
      A. The class handles order validation, saving, and email sending, mixing responsibilities.
      B. The class does not validate the order properly.
      C. The class should not have any methods.
      D. The class only processes orders and follows SRP.

      Solution

      1. Step 1: Identify responsibilities in the class

        The class OrderProcessor validates orders, saves orders, and sends confirmation emails. These are three distinct jobs.
      2. Step 2: Check SRP compliance

        SRP requires one responsibility per class. Mixing validation, saving, and emailing violates SRP.
      3. Final Answer:

        The class handles order validation, saving, and email sending, mixing responsibilities. -> Option A
      4. Quick Check:

        Multiple jobs in one class = SRP violation [OK]
      Hint: One class, one job; multiple jobs mean SRP broken [OK]
      Common Mistakes:
      • Ignoring multiple responsibilities in one class
      • Thinking multiple methods mean multiple classes
      • Assuming SRP allows all related tasks in one class
      4. You have a class that both calculates taxes and generates invoices. What is the best way to fix this SRP violation?
      medium
      A. Combine tax calculation and invoice generation into a single method.
      B. Add more methods to handle discounts and payments in the same class.
      C. Split the class into two: one for tax calculation and one for invoice generation.
      D. Remove tax calculation and keep only invoice generation.

      Solution

      1. Step 1: Identify the problem with the current class

        The class does two jobs: calculating taxes and generating invoices, which breaks SRP.
      2. Step 2: Apply SRP by separating responsibilities

        Splitting into two classes, each with one responsibility, fixes the violation and improves maintainability.
      3. Final Answer:

        Split the class into two: one for tax calculation and one for invoice generation. -> Option C
      4. Quick Check:

        Separate classes for separate jobs = SRP fix [OK]
      Hint: Split mixed jobs into separate classes to follow SRP [OK]
      Common Mistakes:
      • Adding unrelated methods to the same class
      • Combining jobs into one method
      • Removing needed functionality instead of splitting
      5. You are designing a system for a library. Which design best follows the Single Responsibility Principle?
      hard
      A. A single class 'LibrarySystem' that manages books, users, loans, and notifications.
      B. A single class 'Library' that handles everything including maintenance and reporting.
      C. One class 'LibraryManager' that handles books and users, and another class 'LoanAndNotificationManager' for loans and alerts.
      D. Separate classes: 'BookManager' for books, 'UserManager' for users, 'LoanManager' for loans, and 'NotificationService' for alerts.

      Solution

      1. Step 1: Analyze each design for responsibility separation

        Designs with a single class handling books, users, loans, and notifications, or a single class handling everything, put many jobs into one class, violating SRP. Designs with one class for books and users, and another for loans and notifications, mix multiple jobs in each class.
      2. Step 2: Identify the design with clear single responsibilities

        Separate classes: 'BookManager' for books, 'UserManager' for users, 'LoanManager' for loans, and 'NotificationService' for alerts. separates concerns into distinct classes, each with one responsibility, following SRP best.
      3. Final Answer:

        Separate classes: 'BookManager' for books, 'UserManager' for users, 'LoanManager' for loans, and 'NotificationService' for alerts. -> Option D
      4. Quick Check:

        Separate classes for separate jobs = SRP followed [OK]
      Hint: One class per job in system design follows SRP best [OK]
      Common Mistakes:
      • Grouping unrelated responsibilities in one class
      • Mixing multiple jobs in fewer classes
      • Ignoring SRP for convenience
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard