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 实现,每个模式都以注释详尽、可直接运行的代码示例展示。
这是我可以导入的库,还是用来阅读的参考目录?这是一个参考目录,由多个独立的示例项目组成,不是需要作为依赖添加的库。
我该怎么找内容?可以按名称、标签还是分类浏览?你可以按名称搜索特定模式,按“性能”“Gang of Four”等标签浏览,或按创建型、行为型等分类浏览。
深入学习前,我需要先精通 Java 吗?需要。它面向 Java 开发者,并且应先理解 KISS 和 YAGNI 等基本软件设计原则。
这些示例有构建系统或测试配置吗?除了基于 Maven 的持续集成外,没有明确说明其他内容,但仓库使用 Maven 工作流来构建和验证示例模块。
有这些内容的电子书版本吗?有。名为《Open Source Java Design Patterns》的电子书已经推出,项目贡献者可以通过 Gitter 或电子邮件联系维护者免费获取。
有英文以外的语言版本吗?有。README 已被翻译成多种语言,包括中文、韩语、法语、土耳其语、阿拉伯语、西班牙语、葡萄牙语、俄语、德语、日语、越南语等。
如何建议一个缺失的模式?你可以通过 README 中模式搜索部分提供的链接提交新模式请求。
这个项目还在积极维护吗?在维护。它参与了 Hacktoberfest 活动,并有活跃的持续集成工作流,用于 Maven 构建、PR 检查和过期 issue 管理。
Creator
iluwatar
Size
47.6 MB
Stars
94.8K
Updated
CommitSep 13
Age
12y
Commits · 90 Days