Skip to content

Latest commit

 

History

77 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System Design & Software Architecture Examples

This repository contains C++ examples focused on object-oriented design, SOLID principles, and common design patterns.

What is included

  • *.cpp files demonstrating core concepts such as abstraction, encapsulation, inheritance, and polymorphism.
  • Design pattern examples grouped by pattern folder names.
  • Principle and anti-pattern examples showing both good and bad design choices.
  • Sample applications such as ChessGame, SnakeAndLadder, SplitWiseClone, TicTacToeGame, and TinderClone.

Key Categories

Core OOP Concepts

  • Abstraction.cpp
  • Encapulation.cpp
  • Inheritence.cpp
  • StaticPolymorphism.cpp
  • DynamicPolymorphism.cpp
  • staticAndDynamicPolymorphism.cpp

SOLID Principles and Rules

  • SRP/ — Single Responsibility Principle examples
  • OCP/ — Open/Closed Principle examples
  • LSP/ — Liskov Substitution Principle examples
  • ISP/ — Interface Segregation Principle examples
  • DIP/ — Dependency Inversion Principle examples
  • MethodRules/ — Pre- and post-conditions
  • PropertiesRule/ — Class invariants and constraints
  • signatureRule/ — Method argument and return type rules

Design Patterns

  • AdpaterPattern/
  • BridgeDesignPattern/
  • BuilderPattern/
  • chainOfResponsibility/
  • CommandDesignPattern/
  • CompositePattern/
  • DecoratorPattern/
  • FacadePattern/
  • FlyWeightPattern/
  • IteratorDesignPattern/
  • MediatorDesignPattern/
  • MementoDesignPattern/
  • ObserverDesignPattern/
  • ProxyDesignPattern/
  • ProtoTypeDesignPattern/
  • StateDesignPattern/
  • StrategyDesign/
  • TemplateMethodPattern/
  • VisitorDesignPattern/

Applications and Demos

  • PaymentGatewayApplication/
  • BuildDisaccountCoupon/
  • ChessGame/
  • NotificationSystem/
  • SnakeAndLadder/
  • SplitWiseClone/
  • TicTacToeGame/
  • TinderClone/
  • ZeptoClone/

Design Quality Examples

  • GoodDesign/ — better design implementation
  • BadDesign/ — anti-patterns and poor design choices
  • AntiPattern/ — examples of common anti-patterns

How to use

  1. Open the folder in a C++ IDE or editor.
  2. Explore the pattern directories and individual examples.
  3. Compile and run the .cpp files to observe behavior.
  4. Compare good and bad implementations to learn design tradeoffs.

Notes

  • Most examples are standalone and focused on demonstrating a single concept or pattern.
  • Folder names are a good guide to the topic being demonstrated.
  • This repo is useful for learning design principles and preparing for software architecture interviews.

About

Learning Low Level Design (LLD) from scratch — notes, code, and design patterns practiced along the way.

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages