Bonjour à tous,
Je ne crois pas qu'il existe encore un topic qui liste les différents designs pattern existant. Si je me trompe, faites-le moi savoir.
Introduction aux design patterns 
Avant de développer un programme, il y a la phase de conception qui nous permet de savoir, notamment, comment écrire le code-source : ce qu'il faut utiliser, comment, etc.
Cette phase de conception permet aussi de souligner puis de se préparer à corriger les problèmes que l'on va rencontrer et, notamment, des problèmes liés à des besoins purement techniques. Exemple de problème de ce genre : je veux être sûr qu'une classe X ne sera instanciée qu'une et une seule fois.
Ce genre de problèmes peuvent donc être appréhendés durant cette phase de conception, et celle-ci permet ainsi de se préparer à les corriger quand il faudra coder. Les solutions à ce genre de problèmes sont des design patterns.
Exemple de design pattern : le design pattern "Singleton" permet de solutionner le problème énoncé précédemment, à savoir : "je veux être sûr qu'une classe X ne sera instanciée qu'une et une seule fois". En utilisant ce design pattern, on se garantit que ce problème sera solutionné et que cette solution sera propre.
Un design pattern est utilisé par tous les informaticiens, et est testé et re-testé : c'est une solution propre.
Définissons maintenant cette notion (pour l'instant je vous ai seulement expliqué ce qu'est un design pattern, mais sans vraiment apporter une définition précise).
Définition : "design pattern" 
Un design pattern est donc une solution à un problème que l'on se donne. Il possède les attributs suivants :
- Un et un seul nom (dans notre exemple : "Singleton") ;
- Au moins un problème qu'il résout de manière élégante et sûre (dans notre exemple : "je veux être sûr qu'une classe X [...] une seule fois.".
- Une et une seule solution (dans notre exemple : rendre le constructeur de la classe "privé", créer un attribut statique dans la classe qui contiendra l'instance de la classe, blablabla) ;
- Un et un seul diagramme de classes UML illustrant la solution (dans notre exemple : [insérer_diagramme_UML_ici]) ;
- Au moins une conséquence de la solution (car celle-ci peut impliquer des inconvénients ou encore des avantages à être utilisée).
Note : je vous ai préalablement dit qu'un design pattern est une solution, or là je vous dis qu'il contient l'attribut "solution". C'est normal. Il n'y a rien de bizarre. La flemme d'expliquer la différence (y en a-t-il vraiment une d'ailleurs ?), ne pinaillez pas sur ça. Avec la pratique, vous comprendrez de toute manière ce qu'est un design pattern.
Dans ce qui suit, je ne respecterai pas à la lettre cette notion d'attributs. En effet, je n'afficherai aucun diagramme UML, ni ne parlerai des conséquences, parce que bah la flemme.
Cf. mes messages ci-dessous pour les designs patterns.