Roadmap › 0. Fundamentals › Step 6
LLD

Low-Level Design (LLD) — Object Design, UML and Classic Problems in C#

How to turn requirements into classes — the LLD interview approach, identifying entities and responsibilities, UML class and sequence diagrams, applying SOLID and design patterns, designing APIs and database tables, concurrency in object design, and complete C# designs for parking lot, library management, elevator, vending machine, LRU cache, rate limiter, splitwise/expense sharing and movie ticket booking.
Quick revision for interview day. Print it or save it as a PDF.

LLD steps

Requirements → use cases → nouns/verbs → relationships → class diagram → SOLID + patterns → code core flow → concurrency, edge cases, tests, tables.

Pattern picker

Varying rule → Strategy · lifecycle states → State · object creation → Factory/Builder · notify many → Observer · add features → Decorator · pass along handlers → Chain of Responsibility · undo/queue requests → Command · simple front door → Facade · one instance → DI singleton.

UML quick key

+ public - private # protected · ▷ inheritance · ┈▷ interface · ◆ composition · ◇ aggregation · multiplicities 1, 0..1, , 1...

Classic problems

Parking lot · library · elevator · vending machine · ATM (chain of note dispensers) · LRU cache · rate limiter · Splitwise · movie booking (seat locks) · snake & ladder · chess · hotel booking · food delivery.

Concurrency in LLD

Lock critical sections · atomic ops (Interlocked, ConcurrentDictionary.TryAdd) · optimistic concurrency (row version) · unique constraints · distributed locks with TTL · idempotent operations.