<!-- the line below needs to be an empty line C: (its because kramdown isnt that smart and dearly wants an empty line before a heading to be able to display it as such, e.g. website) --> # Padrões de projeto implementados em Java ![Java CI](https://github.com/iluwatar/java-design-patterns/workflows/Java%20CI/badge.svg) [![License MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/LICENSE.md) [![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=iluwatar_java-design-patterns&metric=ncloc)](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=iluwatar_java-design-patterns&metric=coverage)](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns) [![Join the chat at https://gitter.im/iluwatar/java-design-patterns](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> [![All Contributors](https://img.shields.io/badge/all_contributors-170-orange.svg?style=flat-square)](#contributors-) <br/> Leia em outro idioma: [**zh**](/localization/zh/README.md), [**ko**](/localization/ko/README.md), [**fr**](/localization/fr/README.md), [**tr**](/localization/tr/README.md), [**ar**](/localization/ar/README.md), [**es**](/localization/es/README.md) <br/> # Introdução Os padrões de projeto são um conjunto das melhores práticas e soluções formalizadas que um programador pode usar para resolver problemas comuns ao projetar um aplicativo ou sistema. Os padrões de projeto podem acelerar o processo de desenvolvimento, fornecendo testes e comprovados paradigmas de desenvolvimento. Reutilizar padrões de projeto ajuda a evitar problemas sutis que causam problemas, e também melhora a legibilidade do código para desenvolvedores e arquitetos que estão familiarizados com os padrões. # Começando Este site apresenta padrões de projeto Java. As soluções foram desenvolvidas por programadores e arquitetos experientes da comunidade de código aberto. Os padrões podem ser acessados por meio de suas descrições de alto nível ou por meio de seu Código fonte. Os exemplos de código-fonte são bem comentados e podem ser considerados como tutoriais de programação sobre como implementar um padrão específico. Nós usamos as mais populares tecnologias Java de código aberto comprovadas em batalhas. Antes de mergulhar no material, você deve estar familiarizado com vários [Princípios de design de software](https://java-design-patterns.com/principles/). Todos os projetos devem ser o mais simples possível. Você deve começar com KISS, YAGNI, e fazer a coisa mais simples que poderia funcionar com os princípios. Complexidade e os padrões só devem ser introduzidos quando são necessários para fins práticos e extensibilidade. Assim que estiver familiarizado com esses conceitos, você pode começar a se aprofundar nos [padrões de projeto disponíveis](https://java-design-patterns.com/patterns/) por qualquer das seguintes abordagens - Pesquise um padrão específico por nome. Não consegue encontrar um? Informe um novo padrão [aqui](https://github.com/iluwatar/java-design-patterns/issues). - Usando tags como `Performance`,` Gang of Four` ou `Acesso de dados`. - Usando categorias de padrões, `Criacional`,` Comportamental` e outros. Esperamos que você encontre as soluções orientadas a objetos apresentadas neste site úteis em suas arquiteturas e divirta-se as aprendendo tanto quanto nos divertimos ao desenvolvê-las. # Como contribuir Se você estiver disposto a contribuir para o projeto, você encontrará as informações mais relevantes em nossa [wiki do desenvolvedor](https://github.com/iluwatar/java-design-patterns/wiki). Ajudaremos você e responderemos as suas perguntas na [sala de bate-papo do Gitter](https://gitter.im/iluwatar/java-design-patterns). # Licença Este projeto está licenciado sob os termos da licença MIT.