Publié le 07/11/2017, rédigé par Ernest RIBEIRO

Pattern Singleton

Le design pattern Singleton en Java ?

Qu'est-ce que c'est ?

Le design pattern "Singleton" est un patron de conception qui permet d'avoir une seule et unique instance d'une classe dans toute une application. Autrement dit c'est l'instance d'origine, créée au tout début, qui sera retournée à chaque fois.

Pourquoi s'en servir ?

Dans plusieurs cas de figure :

Remarque : le singleton est un cas particulier puisqu'il est considéré à la fois comme un pattern mais également comme un antipattern. En effet, trop de singletons dans une application impliquera des liens statiques non mockables et rendra le code difficilement testable unitairement.

Ce pattern est donc à utiliser avec parcimonie.

Différentes implémentations du singleton

Le singleton est un cas particulier puisque ses implémentations diffèrent selon les langages. Dans la pratique et en Java, il peut être thread-safe, non thread-safe, instancié via lazy-loading ou non, statique ou non (cas d'un framework avec Spring).

Du fait de la multitude d'implémentations possibles et des explications détaillées à fournir pour chacune d'entre-elles, vous trouverez ci-dessous un article par implémentation en Java :