An open API service indexing awesome lists of open source software.

https://github.com/jpcadena/design-patterns

Design Patterns for Clean Code in Python
https://github.com/jpcadena/design-patterns

behavioral clean-code creational dependency-inversion design-patterns development gamma-categorization interface-segregation liskov-subsititution open-closed oriented-object-programming pep8 programming pylint python single-responsability software-engineering solid-principles structural type-hint

Last synced: 4 months ago
JSON representation

Design Patterns for Clean Code in Python

Awesome Lists containing this project

README

        

# design-patterns





Logo

design-patterns


Design patterns in Python


Explore the docs »



Table of Contents



  1. About The Project



  2. Getting Started


  3. Usage

  4. Contributing

  5. Security

  6. Code of Conduct

  7. License

  8. Contact

## About the project

[![Project][project-screenshot]](https://example.com)

This project is about Design Patterns in Python that includes the S.O.L.I.D.
principles and the Gamma Categorization for 23 design patterns classified into
Creational, Behavioral and Structural based on Clean Code: A Handbook of Agile
Software Craftsmanship by Robert C. Martin.

(back to top)

## Built with

[![Python][python-shield]][python-url] [![isort][isort-shield]][isort-url] [![Black][black-shield]][black-url] [![Ruff][ruff-shield]][ruff-url] [![MyPy][mypy-shield]][mypy-url] [![pre-commit][pre-commit-shield]][pre-commit-url] [![GitHub Actions][github-actions-shield]][github-actions-url] [![Poetry][poetry-shield]][poetry-url] [![Pycharm][pycharm-shield]][pycharm-url] [![Visual Studio Code][visual-studio-code-shield]][visual-studio-code-url] [![Markdown][markdown-shield]][markdown-url] [![License: MIT][license-shield]][license-url]

(back to top)

## Getting started

### Prerequisites

- [Python 3.11][python-docs]

### Installation

1. Clone the **repository**
```
git clone https://github.com/jpcadena/design-patterns.git
```
2. Change the directory to **root project**
```
cd design-patterns
```
3. Install **Poetry** package manager
```
pip install poetry
```
4. Install the project's **dependencies**
```
poetry install
```
5. Activate the **environment**
```
poetry shell
```

(back to top)

### Usage

1. Execute with console
```
python main.py
```

(back to top)

## Contributing

[![GitHub][github-shield]][github-url]

Please read our [contributing guide](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

(back to top)

## Security

For security considerations and best practices, please refer to our [Security Guide](SECURITY.md) for a detailed guide.

(back to top)

## Code of Conduct

We enforce a code of conduct for all maintainers and contributors. Please read our [Code of Conduct](CODE_OF_CONDUCT.md) to understand the expectations before making any contributions.

(back to top)

## License

Distributed under the MIT License. See [LICENSE](LICENSE) for more information.

(back to top)

## Contact

- [![LinkedIn][linkedin-shield]][linkedin-url]

- [![Outlook][outlook-shield]](mailto:[email protected]?subject=[GitHub]design-patterns)

(back to top)

[project-screenshot]: assets/images/project.png

[python-docs]: https://docs.python.org/3.11/

[//]: # "Shields"

[linkedin-shield]: https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white

[outlook-shield]: https://img.shields.io/badge/Microsoft_Outlook-0078D4?style=for-the-badge&logo=microsoft-outlook&logoColor=white

[python-shield]: https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54

[pycharm-shield]: https://img.shields.io/badge/PyCharm-21D789?style=for-the-badge&logo=pycharm&logoColor=white

[markdown-shield]: https://img.shields.io/badge/Markdown-000000?style=for-the-badge&logo=markdown&logoColor=white

[github-shield]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white

[ruff-shield]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json

[black-shield]: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge&logo=appveyor

[mypy-shield]: https://img.shields.io/badge/mypy-checked-2A6DB2.svg?style=for-the-badge&logo=appveyor

[visual-studio-code-shield]: https://img.shields.io/badge/Visual_Studio_Code-007ACC?style=for-the-badge&logo=visual-studio-code&logoColor=white

[poetry-shield]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/python-poetry/website/main/static/badge/v0.json

[isort-shield]: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336

[github-actions-shield]: https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge&logo=githubactions&logoColor=white

[pre-commit-shield]: https://img.shields.io/badge/pre--commit-F7B93E?style=for-the-badge&logo=pre-commit&logoColor=white

[license-shield]: https://img.shields.io/badge/License-MIT-yellow.svg

[github-shield]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white

[//]: # "URL"

[linkedin-url]: https://linkedin.com/in/juanpablocadenaaguilar
[python-url]: https://www.python.org/

[pycharm-url]: https://www.jetbrains.com/pycharm/

[markdown-url]: https://daringfireball.net/projects/markdown/

[github-url]: https://github.com/jpcadena/design-patterns

[ruff-url]: https://beta.ruff.rs/docs/

[black-url]: https://github.com/psf/black

[mypy-url]: http://mypy-lang.org/

[visual-studio-code-url]: https://code.visualstudio.com/

[poetry-url]: https://python-poetry.org/

[isort-url]: https://pycqa.github.io/isort/

[github-actions-url]: https://github.com/features/actions

[pre-commit-url]: https://pre-commit.com/

[license-url]: https://opensource.org/licenses/MIT

[github-url]: https://github.com/jpcadena/design-patterns