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.
This folder contains comprehensive implementations of various design patterns.
- 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.
- C_ParkingLotDesign - Parking lot management system.
- CA_ProducerConsumerDesign - Basic producer consumer design implemented through multithreading.
- D_TicTacToeLLD - Low-level design of the Tic Tac Toe game.
- E_CarRentalSystem - Design of a car rental management system.
- F_SnakeAndLadder - Low-level design of the Snake and Ladder game.
- G_BookMyShow - BookMyShow ticket booking system.
- H_VendingMachineDesign - Vending machine design.
- I_ATMDesign - Low-level ATM machine design.
- J_FileSystemDesign - File system design with command operations.
- K_SimpleArithmeticCalculator - Calculator design with basic arithmetic operations.
- LoggerDesign - Logger with the Facade pattern.
- M_UberDesign - Online cab booking system (Uber/Rapido/Ola).
- N_ZeptoStoreDesign - Zepto store with ordering strategies.
- O_CultFitDesign - CultFit fitness management system.
- P_TwitterDesign - Twitter-like social media platform.
- Q_SwiggyDesign - Swiggy food delivery system with coupon discounts.
- Y_Utils - Utility methods for design implementations.
- Z_Exception - Exception handling utilities.
- Clone the repository and explore each module for detailed examples.
- Each module has a dedicated README with implementation details and usage.
Contributions are welcome! Please open issues for improvements or submit pull requests.
If you find this repository helpful, please give it a star! Your support encourages more comprehensive guides.
For any queries or feedback, feel free to reach out via GitHub.