https://codewitharyan.com/system-design/low-level-design


πŸ”Ή Must-Know: Singleton, Factory, Builder, Strategy, Observer, Adapter, Proxy, Decorator, Composite, Flyweight, Template Method, Command, Chain of Responsibility.

πŸ”Ή Nice-to-Know (But Rarely Asked): Memento, State, Visitor, Mediator, Interpreter, Bridge.


πŸ”₯ FAANG-Level Design Patterns Roadmap

πŸ”₯ 1. Core OOP Principles (Before Learning Design Patterns)

βœ… SOLID Principles (Single Responsibility, Open-Closed, Liskov, Interface Segregation, Dependency Injection)

βœ… DRY (Don’t Repeat Yourself) & KISS (Keep It Simple, Stupid)

βœ… Composition over Inheritance

βœ… Encapsulation, Polymorphism, Abstraction, and Inheritance

Hands-On Practice

βœ” Refactor a badly written codebase to follow SOLID principles.

βœ” Implement Dependency Injection in Java using Spring Boot.


πŸ”₯ 2. Creational Design Patterns (Object Creation)

βœ… Singleton β†’ Global shared instance (Thread-Safe Singleton, Enum Singleton, Lazy vs Eager Initialization)

βœ… Factory Method β†’ Encapsulating Object Creation (Factory Pattern, Abstract Factory)

βœ… Builder β†’ Step-by-step object construction (Immutable Objects, Fluent Interface)