{"id":20433350,"url":"https://github.com/jpcadena/design-patterns","last_synced_at":"2025-03-05T06:20:16.783Z","repository":{"id":68396383,"uuid":"603277144","full_name":"jpcadena/design-patterns","owner":"jpcadena","description":"Design Patterns for Clean Code in Python","archived":false,"fork":false,"pushed_at":"2024-04-19T22:10:45.000Z","size":360,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-21T17:05:22.008Z","etag":null,"topics":["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"],"latest_commit_sha":null,"homepage":"https://github.com/jpcadena/design-patterns","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jpcadena.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-02-18T02:34:35.000Z","updated_at":"2024-04-22T20:01:04.669Z","dependencies_parsed_at":"2023-10-17T06:52:33.437Z","dependency_job_id":"f1b5a1be-5ab5-46dd-ab23-055ceca44715","html_url":"https://github.com/jpcadena/design-patterns","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcadena%2Fdesign-patterns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcadena%2Fdesign-patterns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcadena%2Fdesign-patterns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jpcadena%2Fdesign-patterns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jpcadena","download_url":"https://codeload.github.com/jpcadena/design-patterns/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241975837,"owners_count":20051537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-11-15T08:18:43.832Z","updated_at":"2025-03-05T06:20:16.761Z","avatar_url":"https://github.com/jpcadena.png","language":"Python","readme":"# design-patterns\n\n\u003c!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --\u003e\n\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- PROJECT SHIELDS --\u003e\n\u003c!--\n*** Markdown \"reference style\" links for readability.\n*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).\n--\u003e\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/othneildrew/Best-README-Template\"\u003e\n    \u003cimg src=\"assets/images/logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003edesign-patterns\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Design patterns in Python\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/jpcadena/design-patterns\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#code-of-conduct\"\u003eCode of Conduct\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About the project\n\n[![Project][project-screenshot]](https://example.com)\n\nThis project is about Design Patterns in Python that includes the S.O.L.I.D.\nprinciples and the Gamma Categorization for 23 design patterns classified into\nCreational, Behavioral and Structural based on Clean Code: A Handbook of Agile\nSoftware Craftsmanship by Robert C. Martin.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Built with\n\n[![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]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting started\n\n### Prerequisites\n\n- [Python 3.11][python-docs]\n\n### Installation\n\n1. Clone the **repository**\n   ```\n   git clone https://github.com/jpcadena/design-patterns.git\n   ```\n2. Change the directory to **root project**\n   ```\n   cd design-patterns\n   ```\n3. Install **Poetry** package manager\n   ```\n   pip install poetry\n   ```\n4. Install the project's **dependencies**\n   ```\n   poetry install\n   ```\n5. Activate the **environment**\n   ```\n   poetry shell\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- USAGE EXAMPLES --\u003e\n\n### Usage\n\n1. Execute with console\n   ```\n   python main.py\n   ```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## Contributing\n\n[![GitHub][github-shield]][github-url]\n\nPlease read our [contributing guide](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- SECURITY --\u003e\n\n## Security\n\nFor security considerations and best practices, please refer to our [Security Guide](SECURITY.md) for a detailed guide.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CODE_OF_CONDUCT --\u003e\n\n## Code of Conduct\n\nWe 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.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the MIT License. See [LICENSE](LICENSE) for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\n- [![LinkedIn][linkedin-shield]][linkedin-url]\n\n- [![Outlook][outlook-shield]](mailto:jpcadena@espol.edu.ec?subject=[GitHub]design-patterns)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[project-screenshot]: assets/images/project.png\n\n[python-docs]: https://docs.python.org/3.11/\n\n[//]: # \"Shields\"\n\n[linkedin-shield]: https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\n\n[outlook-shield]: https://img.shields.io/badge/Microsoft_Outlook-0078D4?style=for-the-badge\u0026logo=microsoft-outlook\u0026logoColor=white\n\n[python-shield]: https://img.shields.io/badge/python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54\n\n[pycharm-shield]: https://img.shields.io/badge/PyCharm-21D789?style=for-the-badge\u0026logo=pycharm\u0026logoColor=white\n\n[markdown-shield]: https://img.shields.io/badge/Markdown-000000?style=for-the-badge\u0026logo=markdown\u0026logoColor=white\n\n[github-shield]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white\n\n[ruff-shield]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json\n\n[black-shield]: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge\u0026logo=appveyor\n\n[mypy-shield]: https://img.shields.io/badge/mypy-checked-2A6DB2.svg?style=for-the-badge\u0026logo=appveyor\n\n[visual-studio-code-shield]: https://img.shields.io/badge/Visual_Studio_Code-007ACC?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white\n\n[poetry-shield]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/python-poetry/website/main/static/badge/v0.json\n\n[isort-shield]: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat\u0026labelColor=ef8336\n\n[github-actions-shield]: https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge\u0026logo=githubactions\u0026logoColor=white\n\n[pre-commit-shield]: https://img.shields.io/badge/pre--commit-F7B93E?style=for-the-badge\u0026logo=pre-commit\u0026logoColor=white\n\n[license-shield]: https://img.shields.io/badge/License-MIT-yellow.svg\n\n[github-shield]: https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge\u0026logo=github\u0026logoColor=white\n\n[//]: # \"URL\"\n\n[linkedin-url]: https://linkedin.com/in/juanpablocadenaaguilar\n[python-url]: https://www.python.org/\n\n[pycharm-url]: https://www.jetbrains.com/pycharm/\n\n[markdown-url]: https://daringfireball.net/projects/markdown/\n\n[github-url]: https://github.com/jpcadena/design-patterns\n\n[ruff-url]: https://beta.ruff.rs/docs/\n\n[black-url]: https://github.com/psf/black\n\n[mypy-url]: http://mypy-lang.org/\n\n[visual-studio-code-url]: https://code.visualstudio.com/\n\n[poetry-url]: https://python-poetry.org/\n\n[isort-url]: https://pycqa.github.io/isort/\n\n[github-actions-url]: https://github.com/features/actions\n\n[pre-commit-url]: https://pre-commit.com/\n\n[license-url]: https://opensource.org/licenses/MIT\n\n[github-url]: https://github.com/jpcadena/design-patterns\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpcadena%2Fdesign-patterns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjpcadena%2Fdesign-patterns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpcadena%2Fdesign-patterns/lists"}