Les classes d'utilité (classes constituées de méthodes statiques et de champs statiques) ne sont pas conçues pour être instanciées. Malgré cela, je vois souvent des choses qui peuvent être instanciées, alors utilisons un constructeur privé pour rendre absolument impossible l'instanciation.
Si aucun constructeur n'est défini, un constructeur appelé constructeur par défaut est automatiquement créé.
En écrivant explicitement un constructeur privé, l'accès depuis l'extérieur est désactivé et la génération du constructeur par défaut est supprimée. AssertionError n'est pas strictement nécessaire, mais elle est incluse comme assurance.
//Classes d'utilité qui ne peuvent pas être instanciées
public class UtilityClass {
//Supprimer le constructeur par défaut pour empêcher l'instanciation
private UtilityClass() {
throw new AssertionError();
}
… //Le reste est omis
}
[Lire Java efficace] Chapitre 2 Item 5 "Eviter la création d'objets inutiles" https://qiita.com/Natsukii/items/ec64efddce85ffd59fa8
Recommended Posts