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

# In Java implementierte Entwurfsmuster

![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-208-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->

<br/>

In einer anderen Sprache lesen : [**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), [**pt**](localization/pt/README.md), [**id**](localization/id/README.md), [**ru**](localization/ru/README.md), [**de**](localization/de/README.md), [**ja**](localization/ja/README.md)

<br/>

# Einführung

Entwurfschemas sind die besten formalisierten Praktiken, die ein Programmierer verwenden kann,
um allgemeine Probleme beim Entwurf einer Anwendung oder eines Systems zu lösen.

Entwurfschemas können den Entwicklungsprozess beschleunigen, indem sie getestete und bewährte
Entwicklungsparadigmen bereitstellen.

Die Wiederverwendung von Entwurfschemas hilft, subtile Fehler zu vermeiden, die größere
Probleme verursachen können, sowie die Lesbarkeit des Codes für Programmierer und Architekten zu verbessern, 
welche mit den Prinzipien der Entwurfsmuster vertraut sind.

# Erste Schritte

Auf dieser Seite werden Java Entwurfschemas vorgestellt. Die Lösungen wurden entwickelt von
erfahrenen Programmierern und Architekten aus der Open-Source-Gemeinschaft. Die
Schemas können anhand ihrer übergeordneten Beschreibungen oder anhand ihres
Quellcodes durchsucht werden. Die Quellcode-Beispiele sind gut kommentiert und können als
Programmiertutorials zur Implementierung eines bestimmten Schemas angesehen werden. Wir  verwenden die am besten
bekannten und erprobtesten Open-Source Java-Technologien.

Bevor Sie in die Materie der Entwurfschemas eintauchen, sollten sie sich mit den verschiednen
[Software-Entwurfsprinzipien](https://java-design-patterns.com/principles/) auseinandersetzen.

Alle Entwürfe sollten so einfach wie möglich gehalten werden. Sie sollten mit KISS, YAGNI,
und Do The Simplest Thing That Could Possibly Work prinzipen anfangen. Komplexe Entwurfschemas sollen nur eingesetzt werden, wenn diese für sinnvolle Erweiterungen benötigt werden.

Sobald sie mit diesen Konzepten vertraut sind, können sie beginnen, sich mit den [verfügbaren Entwurfschemas](https://java-design-patterns.com/patterns/) auseinanderzusetzen, durch einen
der folgenden Ansätze

 - Nach einem bestimmten Schema anhand des Namens suchen. 
 Sie können keins finden? Bitte melden sie ein neues Schema [hier](https://github.com/iluwatar/java-design-patterns/issues).
 - Verwendung von Tags wie `Performance`, `Gang of Four` oder `Data access`.
 - Verwendung von Entwurfschema-Kategorien wie `Creational`, `Behavioral` und andere.

Hoffentlich finden sie die auf dieser Website vorgestellten objektorientierten Lösungen
für ihre Architekturen nützlich und dass sie genauso viel Spaß beim Lernen haben, wie wir bei ihrer Entwicklung hatten.

# Wie man bei diesem Projekt mitwirken kann

Wenn sie zu dem Projekt beitragen wollen, finden sie die entsprechenden Informationen in
unserem [Entwickler-Wiki](https://github.com/iluwatar/java-design-patterns/wiki).mWir helfen Ihnen
gerne und beantworten ihre Fragen im [Gitter chatroom](https://gitter.im/iluwatar/java-design-patterns).

# Lizenz

Dieses Projekt steht unter den Bedingungen der MIT-Lizenz.

