/design-patterns-with-py

A comprehensive collection of design patterns implemented in Python, aimed at helping developers understand and apply these patterns in real-world scenarios.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Design Patterns with Python

Welcome to the Design Patterns with Python repository! This project provides a comprehensive collection of design patterns implemented in Python, aimed at helping developers understand and apply these patterns in real-world scenarios.

Patterns Included

Behavioral Patterns

  • Chain of Responsibility: ❌ Implemented ❌ Unit Tests
  • Command: ❌ Implemented ❌ Unit Tests
  • Interpreter: ❌ Implemented ❌ Unit Tests
  • Iterator: ❌ Implemented ❌ Unit Tests
  • Mediator: ❌ Implemented ❌ Unit Tests
  • Memento: ❌ Implemented ❌ Unit Tests
  • Observer: ❌ Implemented ❌ Unit Tests
  • State: ❌ Implemented ❌ Unit Tests
  • Strategy: ✅ Implemented ❌ Unit Tests
  • Template Method: ❌ Implemented ❌ Unit Tests
  • Visitor: ❌ Implemented ❌ Unit Tests

Creational Patterns

  • Abstract Factory: ❌ Implemented ❌ Unit Tests
  • Builder: ❌ Implemented ❌ Unit Tests
  • Factory Method: ❌ Implemented ❌ Unit Tests
  • Prototype: ❌ Implemented ❌ Unit Tests
  • Singleton: ❌ Implemented ❌ Unit Tests

Structural Patterns

  • Adapter: ❌ Implemented ❌ Unit Tests
  • Bridge: ❌ Implemented ❌ Unit Tests
  • Composite: ❌ Implemented ❌ Unit Tests
  • Decorator: ❌ Implemented ❌ Unit Tests
  • Facade: ❌ Implemented ❌ Unit Tests
  • Flyweight: ❌ Implemented ❌ Unit Tests
  • Proxy: ❌ Implemented ❌ Unit Tests

Features

  • Detailed Examples: Each pattern is implemented with clear, practical examples.
  • Development Setup: Configuration files for seamless development.
  • Documentation: A well-structured README to guide you through each pattern.

Getting Started

  1. Clone the repository:
    git clone https://github.com/danieljoris/design-patterns-with-py.git
  2. Navigate to the project directory:
    cd design-patterns-with-py
  3. Follow the setup instructions in the README
  4. Explore the patterns and integrate them into your projects

Contribution

Feel free to contribute and enhance this collection! Check out the contribution guidelines for more details.

License

This project is licensed under the MIT License. See the LICENSE file for more information.