java-design-patterns README

The project's README from github.com/iluwatar/java-design-patterns. As one markdown file: README.md.

Design Patterns Implemented in Java

Java CI License MIT Lines of Code Coverage Join the chat at https://gitter.im/iluwatar/java-design-patterns

All Contributors


Read in different language : zh, zh-TW ,ko, fr, tr, ar, es, pt, id, ru, de, ja, vi, bn, np, it, da

Introduction

Design patterns are the best, formalized practices a programmer can use to solve common problems when designing an application or system.

Design patterns can speed up the development process by providing tested, proven development paradigms.

Reusing design patterns helps prevent subtle issues that cause major problems, and it also improves code readability for coders and architects who are familiar with the patterns.

Getting Started

This site showcases Java Design Patterns. The solutions have been developed by experienced programmers and architects from the open-source community. The patterns can be browsed by their high-level descriptions or by looking at their source code. The source code examples are well commented and can be thought of as programming tutorials on how to implement a specific pattern. We use the most popular battle-proven open-source Java technologies.

Before you dive into the material, you should be familiar with various Software Design Principles.

All designs should be as simple as possible. You should start with KISS, YAGNI, and Do The Simplest Thing That Could Possibly Work principles. Complexity and patterns should only be introduced when they are needed for practical extensibility.

Once you are familiar with these concepts you can start drilling down into the available design patterns by any of the following approaches:

Hopefully, you find the object-oriented solutions presented on this site useful in your architectures and have as much fun learning them as we had while developing them.

How to Contribute

If you are willing to contribute to the project you will find the relevant information in our developer wiki. We will help you and answer your questions in the Gitter chatroom.

The Book

The design patterns are now available as an e-book. Find out more about "Open Source Java Design Patterns" here: https://payhip.com/b/bNQFX

The project contributors can get the book for free. Contact the maintainer via Gitter chatroom or email (iluwatar (at) gmail (dot) com ). Send a message that contains your email address, Github username, and a link to an accepted pull request.

License

This project is licensed under the terms of the MIT license.

Supporters

SerpApi logo

SerpApi

SerpApi is the world’s leading provider of search data, pioneering APIs that turn search engine results into structured, developer-ready information.

Contributors

Ilkka Seppälä
Ilkka Seppälä

📆 🚧 🖋
Subhrodip Mohanta
Subhrodip Mohanta

💻 👀 🚧
amit1307
amit1307

💻
Narendra Pathai
Narendra Pathai

💻 🤔 👀
Jeroen Meulemeester
Jeroen Meulemeester

💻
Joseph McCarthy
Joseph McCarthy

💻
Thomas
Thomas

💻
Anurag Agarwal
Anurag Agarwal

💻
Markus Moser
Markus Moser

🎨 💻 🤔
Sabiq Ihab
Sabiq Ihab

💻
Amit Dixit
Amit Dixit

💻
Piyush Kailash Chaudhari
Piyush Kailash Chaudhari

💻
joshzambales
joshzambales

💻
Kamil Pietruszka
Kamil Pietruszka

💻
Zafar Khaydarov
Zafar Khaydarov

💻 📖
Paul Campbell
Paul Campbell

💻
Argyro Sioziou
Argyro Sioziou

💻
TylerMcConville
TylerMcConville

💻
saksham93
saksham93

💻
nikhilbarar
nikhilbarar

💻
Colin But
Colin But

💻
Ruslan
Ruslan

💻
Juho Kang
Juho Kang

💻
Dheeraj Mummareddy
Dheeraj Mummareddy

💻
Bernardo Sulzbach
Bernardo Sulzbach

💻
Aleksandar Dudukovic
Aleksandar Dudukovic

💻
Yusuf Aytaş
Yusuf Aytaş

💻
Mihály Kuprivecz
Mihály Kuprivecz

💻
Stanislav Kapinus
Stanislav Kapinus

💻
GVSharma
GVSharma

💻
Srđan Paunović
Srđan Paunović

💻
Petros G. Sideris
Petros G. Sideris

💻
Pramod Gupta
Pramod Gupta

👀
Amarnath Chandana
Amarnath Chandana

💻
Anurag870
Anurag870

💻 📖
Wes Gilleland
Wes Gilleland

💻
Harshraj Thakor
Harshraj Thakor

💻

java-design-patterns (iluwatar/java-design-patterns)

Searching Database…

Что это такое?Коллекция реализаций на Java классических паттернов проектирования (порождающих, структурных, поведенческих и других), каждый из которых представлен хорошо прокомментированным примером кода, который можно запустить.
Это библиотека, которую нужно подключить, или справочник для чтения?Это справочный каталог, то есть набор самостоятельных учебных проектов, а не библиотека, которую добавляют в зависимости.
Как в нём ориентироваться — искать по названию, тегу или категории?Можно найти конкретный паттерн по названию, просмотреть по тегам вроде Performance или Gang of Four, либо открыть категории, например порождающие и поведенческие.
Нужно ли хорошо знать Java, прежде чем погружаться?Да, он рассчитан на Java-разработчиков, которые также должны сначала понимать базовые принципы проектирования ПО, такие как KISS и YAGNI.
Есть ли система сборки или настройка тестов для примеров?Явно не сказано, кроме CI на основе Maven, но в репозитории используются воркфлоу Maven для сборки и проверки модулей с примерами.
Есть ли версия этого материала в виде книги?Да, доступна электронная книга «Open Source Java Design Patterns», и участники проекта могут получить её бесплатно, связавшись с сопровождающим через Gitter или по электронной почте.
Доступен ли он на других языках, кроме английского?Да, README переведён на многие языки, включая китайский, корейский, французский, турецкий, арабский, испанский, португальский, русский, немецкий, японский, вьетнамский и другие.
Как предложить паттерн, которого не хватает?Новый запрос на паттерн можно отправить по ссылке из раздела поиска паттернов в README.
Проект всё ещё активно поддерживается?Да, он участвует в Hacktoberfest и имеет активные CI-воркфлоу для сборки Maven, проверки пул-реквестов и управления устаревшими задачами.
Creator
iluwatar
Size
47.6 MB
Stars
94.8K
Updated
CommitSep 13
Age
12y
Commits · 90 Days