Low-Level Design practice problems implemented in Java, applying common OOP design patterns.
| Project | Design Patterns |
|---|---|
| ATM | State, Chain of Responsibility, Strategy, Factory |
| Elevator | State, Command, Strategy |
| LRU Cache | — (Data Structures: Doubly Linked List + HashMap) |
| Logger | Chain of Responsibility, Singleton |
| Parking Lot | Strategy |
| SplitWise | Strategy, Factory |
| StackOverflow | Observer |
| Vending Machine | State, Strategy |
- Creational: Factory, Singleton
- Behavioral: State, Strategy, Chain of Responsibility, Command, Observer
- Structural: —
- Java (Maven projects)
Each project is a self-contained Maven module with the following layout:
<ProjectName>/
├── pom.xml
└── src/main/java/
├── entities/ # Domain models
├── enums/ # Enumerations
├── service/ # Business logic
├── strategy/ # Strategy implementations
├── state/ # State implementations
└── <Project>Demo.java # Entry point / demo runner