<!-- Cette ligne doit restée vide pour des raisons de formatage
    afin qu’on puisse avoir un affichage agréable comme sur un 
    site web par exemple -->

# Les patrons de conception implémentés en Java

![Java CI with Maven](https://github.com/iluwatar/java-design-patterns/workflows/Java%20CI%20with%20Maven/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-148-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->

# Introduction

Les patrons de conception (design patterns) sont les meilleures 
pratiques formalisées qu’un programmeur peut utiliser pour résoudre
des problèmes courants lors de la conception d’une application 
ou d’un système.

Les patrons de conception peuvent accélérer le processus de
développement en fournissant des paradigmes éprouvés.

La réutilisation de patrons de conception aide à se prémunir des problèmes subtils
qui causent des problèmes majeurs, et cette pratique augmente la lisibilité
du code pour les développeurs et architectes familiers de ces concepts.

# Commencer

Ce site présente des patrons de conception Java. Les solutions ont été développées 
par des développeurs et architectes expérimentés de la communauté open source.
Les modèles peuvent être parcourus par leurs descriptions de haut niveau ou
en regardant leur code source.
Les exemples de code source sont bien commentés et peuvent être considérés
comme tutoriels de programmation sur la façon d’implémenter un modèle spécifique.
Nous utilisons les technologies Java open source les plus populaires et éprouvées.

Avant de vous plonger dans le contenu, vous devriez vous familiariser avec divers
[Principes de conception de logiciels](https://java-design-patterns.com/principles/).

Tous les modèles doivent être aussi simples que possible.
Vous devriez commencer par les principes KISS, YAGNI et 
Faites La Chose La Plus Simple Qui Fonctionne.
La complexité et les modèles ne devraient être introduits
que lorsqu’ils sont nécessaires pour une extensibilité pratique.

Une fois que vous êtes familiarisé avec ces concepts, vous pouvez commencer à explorer les
[modèles de conception disponibles](https://java-design-patterns.com/patterns/)
par n’importe laquelle des approches suivantes&nbsp;:

- Recherchez un modèle spécifique par son nom.
  Vous n’en trouvez pas&nbsp;? Veuillez signaler un nouveau modèle [ici](https://github.com/iluwatar/java-design-patterns/issues).
- Utilisation de balises telles que `Performance`, `Gang of Four` ou `Data access`.
- Utilisation des catégories de modèles, `Creational`, `Behavioral` et autres.

Nous espérons que vous trouverez les solutions orientées objet présentées
sur ce site utiles dans vos architectures et que vous aurez autant 
de plaisir à les apprendre que nous en avons eu à les développer.

# Comment contribuer

Si vous souhaitez contribuer au projet, vous trouverez les informations pertinentes dans
notre [wiki développeur](https://github.com/iluwatar/java-design-patterns/wiki).
Nous vous aiderons répondrons à vos questions dans le [Gitter chatroom](https://gitter.im/iluwatar/java-design-patterns).

# Licence

Ce projet est concédé sous les termes de la licence MIT.