Skip to content

This repository provides comprehensive coverage of all major object-oriented design patterns with practical, real-world Java examples. In addition, it features detailed low-level design implementations of popular real-life systems, including ATM machines, Vending Machines, Splitwise, Cricbuzz, BookMyShow, Uber, Swiggy, and more.

Notifications You must be signed in to change notification settings

AvinashDogiparthi/LowLevelDesign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

154 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Low Level Designs & Design Patterns

Java Build License

Welcome to the Low Level Designs and Design Patterns repository!

This repository serves as a comprehensive reference for developers mastering Low-Level Design (LLD). It contains production-ready implementations of Object-Oriented Design (OOD) principles, design patterns, and full-scale system design solutions using Java.


Table of Contents

  1. Core Concepts
  2. Design Patterns
  3. System Design Solutions (LLD)
  4. How to Run
  5. Contributing

🧠 Core Concepts

Understanding the foundational principles of software architecture.

Module Description
A_SOLIDPrinciples Implementation of S.O.L.I.D principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion).

Design Patterns

Comprehensive implementations of Creational, Structural, and Behavioral patterns.

Code Pattern Name Description
AA Singleton Thread-safe, Lazy, Eager, and Enum implementations.
A Strategy Interchangeable algorithms (e.g., Parking Spot allocation).
B Observer Publish-Subscribe mechanism (e.g., Availability notifications).
C Factory Interface-based object creation logic.
D Abstract Factory Creating families of related or dependent objects.
E Chain of Responsibility Passing requests along a chain of handlers.
F Proxy Controlling access to an object (Lazy loading, Protection).
G Null Object Handling null references gracefully with default behavior.
H State Altering object behavior when its internal state changes.
I Composite Tree structures of objects (Part-Whole hierarchy).
J Adapter Bridging incompatible interfaces to work together.
K Builder Step-by-step construction of complex objects.
L Facade Simplified interface to a complex subsystem.
M Bridge Decoupling abstraction from its implementation.
N Flyweight Efficient sharing of objects to reduce memory load.

Low Level Designs (LLD)

Real-world low-level design problems often asked in technical interviews.

Code System / Problem Key Concepts / Description
C Parking Lot Multi-floor parking management, Ticket generation, Spot allocation.
CA Producer Consumer Multi-threading, Blocking Queues, Concurrency control.
D Tic Tac Toe Game loop, Board management, Player strategies.
E Car Rental System Inventory management, Booking reservations, Store locations.
F Snake & Ladder Game entities (Board, Dice, Player), Movement logic.
G BookMyShow Movie ticketing, Theater seating, Concurrency handling for booking.
H Vending Machine State Pattern implementation (Idle, Selection, Dispense).
I ATM Design State Pattern, Transaction handling, Cash dispensing chain.
J File System Composite Pattern, Command Pattern for file operations.
K Calculator Basic arithmetic operations and expression evaluation.
-- Logger Chain of Responsibility, Log levels, Appenders.
M Uber/Ride Sharing Driver matching strategies, Trip management, Pricing.
N Zepto/Quick Commerce Inventory, Order management, Delivery assignment strategies.
O CultFit/Gym Workout scheduling, Slot booking, Center management.
P Twitter/Social User graph, News feed generation, Posting, Following.
Q Swiggy/Food Delivery Restaurant menu, Order processing, Coupons & Discounts.
R Issue Resolver Ticketing system, Agent assignment, Strategy pattern.
S Text Editor Flyweight pattern for characters, Formatting, Undo/Redo stack.
T Meeting Scheduler Calendar slot availability, Invite management (Microsoft Teams style).
U Flight Booking Airline inventory, Seat selection, Booking status, Search.
V Hotel Management Room booking, Guest management, Service allocation.

🚀 How to Run

Follow these steps to get the project up and running on your local machine.

1. Prerequisites

Ensure you have the following installed:

  • Java JDK: Version 17+ (Verify with java -version)
  • IDE: IntelliJ IDEA (Recommended), Eclipse, or VS Code.

2. Setup

# Clone the repository
git clone [https://github.com/AvinashDogiparthi/LowLevelDesign.git](https://github.com/AvinashDogiparthi/LowLevelDesign.git)

# Navigate to project directory
cd LowLevelDesign

🤝 Contributing

Contributions are welcome! Whether it's fixing a bug, improving documentation, or adding a new design pattern implementation, your help is appreciated.

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

Please feel free to open Issues for improvements or suggestions.


❤️ Support

If you find this repository helpful or use it for your learning, please give it a Star ⭐! Your support encourages the creation of more comprehensive guides and design implementations.


📧 Contact

For any queries, feedback, or discussions regarding Low Level Design:

Feel free to reach out via GitHub for any collaborations!

About

This repository provides comprehensive coverage of all major object-oriented design patterns with practical, real-world Java examples. In addition, it features detailed low-level design implementations of popular real-life systems, including ATM machines, Vending Machines, Splitwise, Cricbuzz, BookMyShow, Uber, Swiggy, and more.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages