This repository serves as a personal knowledge base and progress tracker for learning Low-Level Design (LLD) using C++. It documents my understanding of object-oriented design, architectural principles, and standard design patterns through practical coding exercises and study notes.
The code contained here is written for educational purposes to experiment with different design approaches, refactor code based on SOLID principles, and implement specific design patterns from scratch.
Low-Level Design (or Object-Oriented Design) bridges the gap between high-level architecture and actual code implementation. This repository focuses on:
- Designing class structures and relationships.
- Defining interfaces and method signatures.
- Applying design patterns to solve specific structural problems.
- Writing code that is modular, readable, and maintainable.
- Abstraction: Using pure virtual functions in C++ to create a Burger interface.
- Polymorphism: Handling different object types through a common base pointer.
- Decoupling: Moving object creation logic into a specific "Factory" class to adhere to the Single Responsibility Principle.
Language: C++
-
OOP Fundamentals: Encapsulation, Abstraction, Inheritance, and Polymorphism.
-
SOLID Principles:
-
Single Responsibility Principle
-
Open/Closed Principle
-
Liskov Substitution Principle
-
Interface Segregation Principle
-
Dependency Inversion Principle
-