This directory contains comprehensive LLD interview questions organized by design patterns and problem types.
- Creational Patterns - Singleton, Factory, Builder, etc.
- Structural Patterns - Adapter, Decorator, Facade, etc.
- Behavioral Patterns - Observer, Strategy, State, etc.
- Classical Problems - Parking Lot, ATM, Elevator, etc.
- Real-World Systems - E-commerce, Social Media, etc.
- Object-Oriented Thinking: Ability to model real-world entities as classes
- Design Pattern Knowledge: Understanding when and how to apply patterns
- SOLID Principles: Writing maintainable, extensible code
- Edge Case Handling: Considering boundary conditions
- Code Organization: Clean, readable, well-structured code
- Communication: Explaining design decisions clearly
Before diving into questions, ensure you understand:
- Clarify Requirements: Ask questions about scope, constraints, and edge cases
- Identify Entities: Find nouns in the problem statement (classes)
- Define Relationships: Establish associations, aggregations, compositions
- Apply Patterns: Use appropriate design patterns where needed
- Design Methods: Define clear APIs and responsibilities
- Handle Edge Cases: Consider error scenarios and boundary conditions
- Draw Diagrams: Create class diagrams to visualize relationships
Each question includes:
- Problem Statement: Clear description of what to design
- Why This Question: Relevance to interviews and real-world scenarios
- Design Pattern: Which pattern(s) apply and why
- Key Entities: Main classes and their responsibilities
- Approach: Step-by-step design process
- Edge Cases: Important scenarios to consider
Navigate to specific categories to start practicing!