Skip to content

luizwbr/design-patterns-examples

Design Patterns Examples / Exemplos de Padrões de Projeto

License: MIT Tests PRs Welcome Issues OpenSSF Best Practices FOSSA Status

[en] A comprehensive collection of design pattern implementations in Go, React.js, PHP, TypeScript, Java, AngularJS, and Angular 2+.

This project was inspired by this awesome website: Refactoring Guru.

🏆 Achievements & Recognition

This project has achieved the following recognitions:

  • OpenSSF Best Practices Badge - Passing Level (2024)

    • Demonstrates commitment to security, quality, and best practices
    • Working towards Gold level certification
  • Open Source License - MIT License for maximum accessibility and reuse

  • Continuous Integration - Automated testing across 4 languages for 22+ patterns

  • Multilingual - Documentation and implementations in 7 programming languages

Note: All achievements are displayed within 48 hours of public recognition per our documentation policy. See ACHIEVEMENTS.md for complete achievement history.

⚡ Quick Start

New to this project? Get started in 5 minutes! 👉 QUICKSTART.md

Learn how to:

  • 🚀 Run your first design pattern example
  • 📚 Choose patterns to learn
  • 🛠️ Set up your development environment
  • 💡 Understand when to use each pattern

🤝 How to Contribute / Como Contribuir

[en] We welcome contributions from the community! Whether you want to add a new design pattern, improve existing implementations, add new language translations, or fix bugs, your help is appreciated.

Please read our Contributing Guidelines to get started. It includes:

  • How to set up your development environment
  • Coding standards and conventions for each language
  • How to submit pull requests
  • Pattern implementation guidelines
  • Developer Certificate of Origin (DCO) requirements

Important: All contributions must include a DCO sign-off. See DCO.md for details.

For information about project governance, decision-making, and key roles, see GOVERNANCE.md and ROLES.md. For project continuity and succession planning, see ACCESS_CONTINUITY.md.

Project Roadmap: See ROADMAP.md for our plans for 2026-2027, including what we will and won't do.

Documentation Policy: We maintain current, accurate documentation consistent with the project's current state.

Accessibility: We strive to follow accessibility best practices to ensure broad participation and use.

[pt-br] Damos as boas-vindas a contribuições da comunidade! Seja para adicionar um novo padrão de projeto, melhorar implementações existentes, adicionar novas traduções de idiomas ou corrigir bugs, sua ajuda é apreciada.

Por favor, leia nosso Guia de Contribuição para começar. Ele inclui:

  • Como configurar seu ambiente de desenvolvimento
  • Padrões e convenções de código para cada linguagem
  • Como enviar pull requests
  • Diretrizes de implementação de padrões
  • Requisitos do Developer Certificate of Origin (DCO)

Importante: Todas as contribuições devem incluir um sign-off DCO. Veja DCO.md para detalhes.

Para informações sobre governança do projeto, tomada de decisões e funções principais, veja GOVERNANCE.md e ROLES.md. Para continuidade do projeto e planejamento de sucessão, veja ACCESS_CONTINUITY.md.

Roteiro do Projeto: Veja ROADMAP.md para nossos planos 2026-2027, incluindo o que faremos e não faremos.

Política de Documentação: Mantemos documentação atual e precisa consistente com o estado atual do projeto.

Acessibilidade: Seguimos boas práticas de acessibilidade para garantir ampla participação e uso.


🐛 How to Report Bugs / Como Reportar Bugs

[en] Found a bug or issue? We appreciate your help in improving this project!

  1. Check existing issues: Before creating a new issue, please check if it has already been reported
  2. Use the issue template: When creating a new issue, use our issue template
  3. Provide details: Include the following information:
    • Pattern name and language implementation
    • Expected behavior vs actual behavior
    • Steps to reproduce the issue
    • Code snippets or error messages (if applicable)
    • Your environment (OS, language version, etc.)

Create a new issue

[pt-br] Encontrou um bug ou problema? Agradecemos sua ajuda para melhorar este projeto!

  1. Verifique issues existentes: Antes de criar uma nova issue, verifique se ela já foi reportada
  2. Use o template de issue: Ao criar uma nova issue, use nosso template de issue
  3. Forneça detalhes: Inclua as seguintes informações:
    • Nome do padrão e linguagem de implementação
    • Comportamento esperado vs comportamento atual
    • Passos para reproduzir o problema
    • Trechos de código ou mensagens de erro (se aplicável)
    • Seu ambiente (SO, versão da linguagem, etc.)

Criar uma nova issue

[pt-br] Uma coleção abrangente de implementações de padrões de projeto em Go, React.js, PHP, TypeScript, Java, AngularJS e Angular 2+.

Este projeto foi inspirado por este site top das galáxias: Refactoring Guru.

🏆 Conquistas e Reconhecimentos

Este projeto alcançou os seguintes reconhecimentos:

  • Selo OpenSSF Best Practices - Nível Passing (2024)

    • Demonstra compromisso com segurança, qualidade e boas práticas
    • Trabalhando para certificação nível Gold
  • Licença Open Source - Licença MIT para máxima acessibilidade e reutilização

  • Integração Contínua - Testes automatizados em 4 linguagens para 22+ padrões

  • Multilíngue - Documentação e implementações em 7 linguagens de programação

Nota: Todas as conquistas são exibidas em até 48 horas após reconhecimento público, conforme nossa política de documentação. Veja ACHIEVEMENTS.md para histórico completo de conquistas.

⚡ Início Rápido

Novo neste projeto? Comece em 5 minutos! 👉 QUICKSTART.md

Aprenda como:

  • 🚀 Executar seu primeiro exemplo de padrão de projeto
  • 📚 Escolher padrões para aprender
  • 🛠️ Configurar seu ambiente de desenvolvimento
  • 💡 Entender quando usar cada padrão

🌍 Language / Idioma

[en] Choose your preferred language to view the documentation:

[pt-br] Escolha seu idioma preferido para visualizar a documentação:

📚 Available Languages / Idiomas Disponíveis

  • English - Full documentation in English
  • Português - Documentação completa em Português BR

📁 Repository Structure / Estrutura do Repositório

[en] Each design pattern is organized in its own directory with implementations in seven programming languages:

[pt-br] Cada padrão de projeto está organizado em seu próprio diretório com implementações em sete linguagens de programação:

patterns/
├── design-pattern-name/
├──── go/
├──── reactjs/
├──── php/
├──── typescript/
├──── java/
├──── angularjs/
└──── angular2/

🎨 Design Patterns Included / Padrões Incluídos

[en] This repository includes 23 design patterns across three categories:

[pt-br] Este repositório inclui 23 padrões de projeto em três categorias:

  • Creational Patterns / Padrões Criacionais: 5 patterns (Factory Method, Abstract Factory, Builder, Prototype, Singleton)
  • Structural Patterns / Padrões Estruturais: 7 patterns (Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy)
  • Behavioral Patterns / Padrões Comportamentais: 11 patterns (Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor)

For detailed information about each pattern, please select your language above.

Para informações detalhadas sobre cada padrão, selecione seu idioma acima.


🧪 Testing / Testes

[en] All pattern implementations include automated testing via GitHub Actions. Tests run on every push and pull request to ensure code quality.

CI/CD Pipeline: Automated tests for Go, TypeScript, Java, and PHP implementations

[pt-br] Todas as implementações de padrões incluem testes automatizados via GitHub Actions. Os testes são executados a cada push e pull request para garantir a qualidade do código.

Pipeline CI/CD: Testes automatizados para implementações Go, TypeScript, Java e PHP


📝 License / Licença

[en] This project is open source and available for educational purposes.

[pt-br] Este projeto é de código aberto e está disponível para fins educacionais.

FOSSA Status

🤝 Contributing / Contribuindo

[en] Feel free to contribute by adding more design patterns, improving existing implementations, or adding new language translations!

[pt-br]

Sinta-se à vontade para contribuir adicionando mais padrões de projeto, melhorando implementações existentes ou adicionando novas traduções de idiomas!

About

Design Patterns examples

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •