This repository is for Low Level Design (LLD) and design pattern practice in Java.
HLD topics should be kept in a separate repository. This repo should focus only on class design, object relationships, design patterns, UML, and machine-coding style problems.
Use this section to quickly know which design patterns are already covered in this repository and which ones still need to be added.
| Done | Design Pattern | Folder / Example | Main Use |
|---|---|---|---|
| [x] | Factory Pattern | FactoryPattern, Parking_System, Bookmyshow |
Create objects based on type without exposing creation logic |
| [x] | Singleton Pattern | Singleton, Bookmyshow, uber-ride-system |
Keep only one shared instance of a service/manager |
| [x] | Strategy Pattern | StrategyPattern, Parking_System, uber-ride-system |
Change algorithm/behavior at runtime |
| [x] | Observer Pattern | ObserverPattern |
Notify subscribers when something changes |
| [x] | Decorator Pattern | DecoratorPattern |
Add extra behavior dynamically |
| [x] | Proxy Pattern | ProxyPattern |
Control access to a real object |
| [x] | Adapter Pattern | Structural_Pattern/AdapterPattern |
Make incompatible interfaces work together |
| [x] | Chain of Responsibility | ChainofResponsibility, LogProcessor |
Pass request through a chain of handlers |
| [x] | State Pattern | Behavioural_Pattern/StatePattern |
Change object behavior based on state |
| [x] | Null Object Pattern | LLDofNULLobject |
Avoid null checks using default object behavior |
| [x] | Builder Pattern | Creational_Pattern/BuilderPattern |
Build complex objects step by step |
| [ ] | Composite Pattern | Pending | File system, menu tree, organization hierarchy |
| [ ] | Command Pattern | Pending | Undo/redo, remote control, task execution |
| [ ] | Template Method Pattern | Pending | Fixed algorithm structure with customizable steps |
| [ ] | Facade Pattern | Pending | Simple interface over a complex subsystem |
| [ ] | Iterator Pattern | Pending | Traverse collections without exposing internals |
| [ ] | Mediator Pattern | Pending | Reduce direct dependency between many objects |
Use this section to track which LLD interview problems are already covered and which ones still need to be implemented.
| Done | LLD Problem | Folder / Status | Main Concepts |
|---|---|---|---|
| [x] | BookMyShow | Bookmyshow |
Movie, theatre, show, screen, seats, booking flow |
| [x] | Parking Lot | Parking_System |
Vehicle, spot, floor, gate, ticket, payment |
| [x] | Uber / Ride Sharing | uber-ride-system |
Rider, driver, ride, fare, matching |
| [x] | Logger System | LogProcessor |
Log levels, chain of responsibility |
| [x] | Custom HashMap | HashMap_Internal_Implementation |
Hashing, bucket, collision handling |
| [x] | Notification System | ObserverPattern |
Subscribers, notification strategies |
| [x] | Order State Flow | Behavioural_Pattern/StatePattern |
Order lifecycle using state pattern |
| [x] | Association Examples | Associations |
One-to-one, one-to-many, many-to-many |
| [ ] | Elevator System | Pending | Elevator states, request scheduling, direction handling |
| [ ] | Splitwise | Pending | Expense sharing, balances, debt simplification |
| [ ] | Vending Machine | Pending | State pattern, inventory, payment, dispense flow |
| [ ] | ATM Machine | Pending | Authentication, cash withdrawal, cash inventory |
| [ ] | LRU Cache | Pending | HashMap, doubly linked list, eviction |
| [ ] | Snake and Ladder | Pending | Board, dice, players, game loop |
| [ ] | Tic Tac Toe | Pending | Board, players, winning strategy |
| [ ] | Chess | Pending | Piece hierarchy, move validation, board state |
| [ ] | Library Management System | Pending | Books, members, borrowing, fines |
| [ ] | Meeting Scheduler | Pending | Calendar, time slots, conflict detection |
| [ ] | Hotel Booking | Pending | Room inventory, date range availability, booking |
| [ ] | Food Delivery LLD | Pending | Restaurant, menu, cart, order, delivery partner |
| [ ] | File System | Pending | Composite pattern, file-directory tree |
| [ ] | Rate Limiter LLD | Pending | Token bucket, sliding window, request limits |
| [ ] | Car Rental System | Pending | Vehicle inventory, booking, pricing, payment |
This repository is only for LLD.
Keep these in a separate HLD repository:
- URL Shortener
- WhatsApp / Chat System
- YouTube / Netflix
- Instagram / Twitter Feed
- Uber HLD
- BookMyShow HLD at scale
- Payment System HLD
- Distributed Cache
- Search Autocomplete
- Sharding and replication
- Kafka / message queue systems