README.md 2.5 KB
Newer Older
M
Markus 已提交
1 2 3 4
<!-- 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) -->

I
Ilkka Seppälä 已提交
5
# Design patterns implemented in Java
I
Ilkka Seppälä 已提交
6

M
Markus 已提交
7
[![Build status](https://travis-ci.org/iluwatar/java-design-patterns.svg?branch=master)](https://travis-ci.org/iluwatar/java-design-patterns)
M
Markus Moser 已提交
8
[![License MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/LICENSE.md)
T
The Gitter Badger 已提交
9
[![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)
V
valery1707 已提交
10
[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=com.iluwatar%3Ajava-design-patterns&metric=alert_status)](https://sonarcloud.io/dashboard/index/com.iluwatar%3Ajava-design-patterns)
T
The Gitter Badger 已提交
11

12
# Introduction
13

S
saritchie 已提交
14
Design patterns are the best formalized practices a programmer can use to
15
solve common problems when designing an application or system.
16

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

S
saritchie 已提交
20
Reusing design patterns help prevent subtle issues which cause major
21 22
problems, and it also improves code readability for coders and architects who
are familiar with the patterns.
23

24 25
# Getting started

26
Before you dive into the material, you should be familiar with various
M
Markus Moser 已提交
27
Programming/Software Design Principles.
28

29 30 31 32 33 34 35
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
patterns by any of the following approaches
36 37 38 39

 - Using difficulty tags, `Difficulty-Beginner`, `Difficulty-Intermediate` & `Difficulty-Expert`.
 - Using pattern categories, `Creational`, `Behavioral` and others.
 - Search for a specific pattern. Can't find one? Please report a new pattern [here](https://github.com/iluwatar/java-design-patterns/issues).
40

41
# How to contribute
42

I
Ilkka Seppälä 已提交
43
If you are willing to contribute to the project you will find the relevant information in our [developer wiki](https://github.com/iluwatar/java-design-patterns/wiki). We will help you and answer your questions in the [Gitter chatroom](https://gitter.im/iluwatar/java-design-patterns).
44

45
# License
I
Ilkka Seppälä 已提交
46

J
joshzambales 已提交
47
This project is licensed under the terms of the MIT license.