{"id":15580051,"url":"https://github.com/beretta350/golang-design-patterns","last_synced_at":"2025-04-24T01:29:45.554Z","repository":{"id":257293738,"uuid":"853495120","full_name":"Beretta350/golang-design-patterns","owner":"Beretta350","description":"This repository provides a comprehensive collection of design patterns implemented in Go (Golang). It serves as a practical guide to understanding and applying common software design patterns in real-world Golang projects. ","archived":false,"fork":false,"pushed_at":"2024-09-15T18:41:14.000Z","size":25,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T05:41:11.525Z","etag":null,"topics":["adapter","behavioralpatterns","builder","coding","creationalpatterns","designpatterns","factory-pattern","go","golang","observer-pattern","programming","singleton","softwaredesign","structuralpatterns"],"latest_commit_sha":null,"homepage":"","language":"Go","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/Beretta350.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-06T19:14:07.000Z","updated_at":"2024-10-15T15:09:41.000Z","dependencies_parsed_at":"2024-09-15T20:07:53.945Z","dependency_job_id":null,"html_url":"https://github.com/Beretta350/golang-design-patterns","commit_stats":null,"previous_names":["beretta350/golang-design-patterns"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beretta350%2Fgolang-design-patterns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beretta350%2Fgolang-design-patterns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beretta350%2Fgolang-design-patterns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beretta350%2Fgolang-design-patterns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Beretta350","download_url":"https://codeload.github.com/Beretta350/golang-design-patterns/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250543720,"owners_count":21447954,"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":["adapter","behavioralpatterns","builder","coding","creationalpatterns","designpatterns","factory-pattern","go","golang","observer-pattern","programming","singleton","softwaredesign","structuralpatterns"],"created_at":"2024-10-02T19:22:22.165Z","updated_at":"2025-04-24T01:29:45.537Z","avatar_url":"https://github.com/Beretta350.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Golang Design Patterns 🚀\n\nWelcome to the **Golang Design Patterns** repository! This project is your ultimate reference guide for mastering design patterns in the Go programming language. Whether you're an experienced developer looking to sharpen your skills or a newcomer eager to learn, this repository provides practical examples and detailed explanations of commonly used design patterns.\n\n## 🌟 What's Inside?\n\nThis repository includes Go implementations of various design patterns, categorized under:\n\n1. **Creational Patterns**:  \n   Patterns for creating objects in a way that suits the situation.\n   - [Factory](https://github.com/Beretta350/golang-design-patterns/tree/main/factory)\n   - [Builder](https://github.com/Beretta350/golang-design-patterns/tree/main/builder)\n   - [Singleton](https://github.com/Beretta350/golang-design-patterns/tree/main/singleton)\n   - ~~Prototype~~\n\n2. **Structural Patterns**:  \n   Patterns that help organize classes and objects in a manner that makes complex structures more manageable.\n   - [Adapter](https://github.com/Beretta350/golang-design-patterns/tree/main/adapter)\n   - ~~Composite~~\n   - ~~Proxy~~\n   - ~~Decorator~~\n\n3. **Behavioral Patterns**:  \n   Patterns that focus on effective communication between objects.\n   - [Observer](https://github.com/Beretta350/golang-design-patterns/tree/main/observer)\n   - ~~Strategy~~\n   - ~~Command~~\n   - ~~Chain of Responsibility~~\n\n## 🧑‍💻 How to Use This Repository\n\nEach pattern has its own directory containing:\n- A clear, commented Go implementation.\n- ~~A brief explanation of the pattern.~~\n- ~~Examples of how to apply it in real-world scenarios.~~\n\n### Clone the repository:\n\n```bash\ngit clone https://github.com/Beretta350/golang-design-patterns.git\ncd golang-design-patterns\n```\n\n### Run Examples\n\nTo run a specific design pattern example, navigate to the corresponding directory and **run the test file**. These tests demonstrate how the pattern works and highlight the benefits of each implementation.\n\nFor example, to see the **Factory Pattern** in action:\n\n```bash\ncd factory\ngo test\n```\n\n## 🚀 Why Design Patterns?\n\nDesign patterns are proven solutions to recurring problems in software design. By learning and implementing them, you’ll:\n- Write **cleaner, more maintainable code**.\n- Solve **complex design problems** with ease.\n- Improve your **Go code structure** and **scalability**.\n\n## 🤝 Contributing\n\nHave an idea or improvement? Contributions are always welcome!  \nFeel free to:\n- Submit a PR 🛠️\n- Open an issue 🐞\n\n### Guidelines:\n1. Fork this repository.\n2. Create a new branch for your feature/fix.\n3. Submit a PR with a detailed description of your changes.\n\n## 📖 Resources \u0026 Further Reading\n\n- [Go Patterns](https://golang.org/doc/effective_go)\n- [Design Patterns: Elements of Reusable Object-Oriented Software](https://en.wikipedia.org/wiki/Design_Patterns)\n- [Refactoring Guru: Design patterns in Go](https://refactoring.guru/design-patterns/go)\n\n## 💬 Contact\n\nIf you have any questions or just want to say hello, feel free to reach out via GitHub Issues or create a discussion thread!\n\n---\n\n**Happy Coding!** 🎉\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberetta350%2Fgolang-design-patterns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberetta350%2Fgolang-design-patterns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberetta350%2Fgolang-design-patterns/lists"}