/i-know-design-patterns

Questions and solutions related to design patterns and object oriented (Uncle Bob is watching u 👀)

Primary LanguageTypeScript

i-know-design-patterns

Overview

i-know-design-patterns is a project dedicated to mastering Object-Oriented Programming (OOP) principles and design patterns. The main objective is to explore, solve, and document various questions and problems related to design patterns, ultimately proving a comprehensive understanding of these concepts.

Project Goals

  • Understand Design Patterns: Deep dive into commonly used design patterns and their applications in real-world scenarios.
  • Solve Design Pattern Challenges: Address and solve practical problems using appropriate design patterns.
  • Demonstrate Proficiency: Show a thorough grasp of design patterns by providing clear solutions and explanations.

Design Patterns Covered

This project explores a range of design patterns, including but not limited to:

  • Creational Patterns: Singleton, Factory Method, Abstract Factory, Builder, Prototype
  • Structural Patterns: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
  • Behavioral Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor

Example Problems

  1. Printer Problem

How to Use

  1. Clone the Repository:

    git clone https://github.com/yourusername/i-know-design-patterns.git
  2. Navigate to the Project Directory:

    cd i-know-design-patterns
  3. Explore the Code: Review the implementation of various design patterns in the src directory.

  4. Run Tests: Execute the tests to see how different patterns solve specific problems.

    npm test

Contributing

Contributions are welcome! If you have any questions, suggestions, or improvements, please open an issue or submit a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Special thanks to the community and resources that have provided insights and examples for design patterns.

Feel free to explore, learn, and contribute to the understanding of design patterns!