<!-- 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) -->

# Шаблоны проектирования на 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-178-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->

# Введение
Шаблоны проектирования - лучший метод для решения проблем, возникающих
во время разработки приложения или системы.

Шаблоны проектирования могут ускорить процесс разработки путем предоставления
проверенных моделей/парадигм.

Использование шаблонов повторно поможет избежать частых проблем, из-за которых
происходят проблемы. А еще это повысит читаемость кода для программистов и 
архитекторов, знакомых с шаблонами.

# Начало работы

В этом репозитории размещены шаблоны проектирования на Java. Они были разработаны
программистами из open source сообщества. Шаблон может быть выбран 
из его описания или просмотром его исходного кода. Код хорошо задокументирован,
его можно рассматривать, как учебник по программированию о конкретном шаблоне.
Мы используем самые популярные (прошедшие огонь, воду и медные трубы) технологии,
основанные только на ПО с открытым исходным кодом.

Преждем чем нырнуть в материал, тебе следует ознакомиться с различными
[принципами разработки ПО(англ)](https://java-design-patterns.com/principles/).

Все конструкции должны быть максимально простыми. Не делай лишнюю функциональность,
которая скорей всего не пригодиться, а просто создай простую штуку, что сможет
работать. Усложнять и вводить паттерны необходимо, лишь когда масштабируемость
действительно нужна.

Как только ознакомитесь с этими концепциями, приступайте к изучению
[доступных шаблонов проектирования(англ)](https://java-design-patterns.com/patterns/) любым
из следующих методов:

- Ищите шаблон по имени. Не смогли найти такой? Сообщите об этом [здесь](https://github.com/iluwatar/java-design-patterns/issues).
- Используя тэги, например `Performance`, `Gang of Four` или `Data access`.
- Используя категории шаблонов `Creational`, `Behavioral` и другие.

Надеемся объективно-ориентированные решения, представленные здесь будут вам 
полезны и найдут место в ваших проектах, а также вы получите такое же удовольствие 
от их изучения, какое получили мы во время их разработки.

# Как принять участие в разработке

Если вы захотите принять участие в жизни проекта, вся полезная информация находится на 
нашей [вики(англ)](https://github.com/iluwatar/java-design-patterns/wiki). Мы можем помочь
и ответить на твои вопросы в чате [Gitter](https://gitter.im/iluwatar/java-design-patterns).

# Лицензия

Проект основывается на тезисах лицензии MIT.

