Skip to content

This repository provides comprehensive coverage of all major object-oriented design patterns with practical, real-world Java examples. In addition, it features detailed low-level design implementations of popular real-life systems, including ATM machines, Vending Machines, Splitwise, Cricbuzz, BookMyShow, Uber, Swiggy, and more.

Notifications You must be signed in to change notification settings

AvinashDogiparthi/LowLevelDesign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚀 System Design and Design Patterns

Welcome to the System Design and Design Patterns repository! This repository contains a collection of system design solutions and implementation of various design patterns in Java. It serves as a comprehensive reference for developers looking to learn or refresh their understanding of key design concepts.


📌 Table of Contents

1. Core Concepts and Principles

This folder contains comprehensive implementations of various design patterns.

🛠️ Design Patterns Implemented (AA-Z):

  • AA_SingletonDesignPattern: Multiple ways to implement Singleton.
  • A_StrategyDesignPattern: Parking spot allocation strategies.
  • B_ObserverDesignPattern: Parking spot availability observer.
  • C_FactoryDesignPattern: Object creation logic based on type.
  • D_AbstractFactoryDesignPattern: Abstract factory for creating families of related objects.
  • E_ChainResponsibilityDesignPattern: Chain of responsibility for processing requests.
  • F_ProxyDesignPattern: Proxy for controlling access to an object.
  • G_NullObjectDesignPattern: Default behavior when no object is available.
  • H_StateDesignPattern: Changing behavior based on state.
  • I_CompositeDesignPattern: Treating individual objects and compositions uniformly.
  • J_AdapterDesignPattern: Adapter to bridge incompatible interfaces.
  • K_BuilderDesignPattern: Construct complex objects step by step.
  • L_FacadeDesignPattern: Simplifying complex subsystems.
  • M_BridgeDesignPattern: Decoupling abstraction from implementation.
  • N_FlyweightDesignPattern: Reusing objects efficiently.

2. System Design Implementations


💻 Usage Instructions

  • Clone the repository and explore each module for detailed examples.
  • Each module has a dedicated README with implementation details and usage.

🤝 Contributing

Contributions are welcome! Please open issues for improvements or submit pull requests.


Support

If you find this repository helpful, please give it a star! Your support encourages more comprehensive guides.


📧 Contact

For any queries or feedback, feel free to reach out via GitHub.

About

This repository provides comprehensive coverage of all major object-oriented design patterns with practical, real-world Java examples. In addition, it features detailed low-level design implementations of popular real-life systems, including ATM machines, Vending Machines, Splitwise, Cricbuzz, BookMyShow, Uber, Swiggy, and more.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages