Vidéo: CREER UN PLUGIN ? #65 | METTRE UN DELAI ? LES COOLDOWNS 2024
Parfois, vous voulez créer une classe Java qui ne peut pas être instanciée du tout. Une telle classe est entièrement constituée de champs et de méthodes statiques. Un bon exemple dans l'API Java est la classe
Math
.
Ses méthodes fournissent des fonctions de type utilitaire qui ne sont pas vraiment associées à un objet particulier. Vous devrez peut-être créer vous-même des classes similaires de temps en temps. Vous pouvez créer une classe avec des méthodes statiques pour valider les données d'entrée, par exemple, ou une classe d'accès à la base de données dotée de méthodes statiques pour extraire des données d'une base de données. Vous n'avez pas besoin de créer des instances de l'une de ces classes.
Vous pouvez utiliser une astuce simple pour empêcher quiconque d'instancier une classe. Pour créer une instance de classe, vous devez avoir au moins un constructeur public. Si vous ne fournissez pas de constructeur dans votre classe, Java insère automatiquement un constructeur par défaut, qui s'avère être public.
Tout ce que vous avez à faire pour empêcher la création d'une instance de classe, alors, est de fournir un seul constructeur privé, comme ceci:
public class Validation
{
private Validation () {} // empêche les instances
// les méthodes statiques et les champs vont ici
}
Maintenant, parce que le constructeur est privé, la classe ne peut pas être instanciée.
Incidemment, la classe
Math
utilise cette technique pour vous empêcher de créer des instances à partir de celle-ci. Voici un extrait de code de la classe
Math
:
public final class Math {
/ **
* Ne laissez personne instancier cette classe.
* /
private Math () {}
Si cette astuce est assez bonne pour les gens qui ont écrit la classe
Math
, c'est probablement assez bon pour vous.