Modèles de conception : Singleton en Java

Publié: 2021-11-13

Les modèles de conception sont bénéfiques pour les programmeurs lorsqu'ils doivent utiliser les meilleures pratiques disponibles dans le développement de logiciels orientés objet. Les modèles de conception peuvent être compris comme des solutions éprouvées et éprouvées pour résoudre le problème de conception en question. Design Systems décrit le problème, la solution, quand appliquer la solution et ses conséquences. D'une certaine manière, les modèles de conception peuvent être considérés comme différents modèles que les développeurs de logiciels peuvent implémenter lorsqu'ils résolvent des problèmes de conception orientés objet spécifiques.

Certaines des fonctionnalités de l'utilisation des modèles de conception en Java par rapport au codage à partir de zéro incluent :

  • Les Design Patterns sont déjà définis et implémentés. En conséquence, ils fournissent une approche standard pour résoudre les problèmes répétitifs. En ce sens, cela aide les programmeurs à économiser beaucoup de temps et d'efforts.
  • L'utilisation de modèles de conception garantit la réutilisabilité de votre morceau de code, ce qui conduit à une maintenabilité et une robustesse élevées de votre code Java. Tout cela réduit ensuite le coût total de possession (TCO) du logiciel à portée de main.
  • Les modèles de conception rendent le code facile à lire et à comprendre, ce qui conduit à une communication plus rapide et à un développement logiciel transparent.

Le langage de programmation Java propose différents modèles de conception pour les programmeurs et les développeurs, qui peuvent être divisés en trois catégories :

  • Modèles de conception de création
  • Modèles de conception structurelle
  • Modèles de conception comportementaux

Tous ces modèles sont utilisés pour différents cas d'utilisation et à des fins différentes. À travers cet article, parlons d'un type de Design Pattern en Java - Singleton Design Pattern, qui relève de la catégorie Creational Design Patterns.

Table des matières

Modèle de conception singleton en Java

Singleton Design Pattern appartient à la catégorie Creational Design Pattern. Il garantit qu'une classe n'a qu'une seule instance, fournissant à cette instance un point d'accès global. Ce faisant, le modèle de conception Singleton résout deux problèmes à la fois, notamment :

1. Il garantit qu'une classe donnée n'a qu'une seule instance.

Ceci est important à prendre en compte, en particulier lorsque vous travaillez sur des ressources partagées, comme une base de données ou un fichier. Imaginez que vous avez créé un objet, mais qu'après un certain temps, vous avez décidé d'en créer un nouveau. Dans le Singleton Design Pattern, au lieu de recevoir un nouvel objet, vous obtiendrez celui que vous avez déjà créé. De cette façon, ce modèle de conception garantit qu'il n'y a pas de redondance d'objets et qu'une classe n'a qu'une seule instance. Ce comportement est impossible à reproduire avec les constructeurs car les appels de constructeur doivent toujours renvoyer un nouvel objet.

2. Fournit un point d'accès global à l'instance particulière.

Les variables globales que vous utilisez pour stocker les objets essentiels sont assez pratiques. Ils sont également tout aussi dangereux puisque n'importe quel morceau de code a le pouvoir d'écraser le contenu de vos variables globales, conduisant à un morceau de code erroné pour vous. Tout comme les variables globales, Singleton Patterns vous permet d'accéder à différents objets de n'importe où dans le programme. Cependant, contrairement aux variables globales, Singleton Patterns empêche cette instance d'être écrasée par un autre programme.

De nos jours, le modèle de conception Singleton est si largement utilisé et répandu que les programmeurs peuvent appeler quelque chose Singleton même s'il ne résout qu'un seul des problèmes énumérés ci-dessus. Toutes les implémentations de Singleton Design Patterns ont en commun les deux étapes suivantes :

  • Rendre le constructeur par défaut privé pour empêcher d'autres classes et objets d'utiliser de nouveaux opérateurs avec des classes Singleton.
  • Construire une méthode de création statique pour fonctionner comme un constructeur. Cette méthode appelle alors le constructeur privé pour créer un objet et l'enregistre dans un champ statique. Tous les appels à venir à cette méthode particulière renvoient désormais l'objet mis en cache.

Le fonctionnement du gouvernement est un excellent exemple concret pour comprendre le fonctionnement des modèles de conception singleton. Indépendamment de l'identité personnelle des individus qui constituent les gouvernements, le titre, "Le gouvernement de X", est le point d'accès global qui identifie le groupe de personnes dont on parle.

Implémentation du modèle de conception singleton en Java

Veuillez suivre la liste d'étapes suivante pour implémenter votre propre modèle de conception Singleton en Java :

  • Ajoutez un champ statique privé à la classe dans laquelle vous souhaitez stocker l'instance singleton.
  • Pour obtenir l'instance singleton appropriée, vous devez déclarer une méthode statique publique.
  • Maintenant, vous devez exécuter une "initialisation différée" dans la méthode statique. Cela devrait essentiellement développer un nouvel objet lors de son premier appel et le placer dans le champ statique. La méthode statique doit toujours renvoyer cette instance particulière lors de tous les appels suivants.
  • Rendez le constructeur privé. La méthode statique de la classe pourra toujours appeler le constructeur, mais pas les autres objets.
  • Veuillez parcourir le code client et remplacer tous les appels directs au constructeur de Singleton par des appels à sa méthode de création statique.

En conclusion

Java est un langage de programmation très diversifié et influent, et il est devenu la base de la plupart des applications Web et de bureau utilisées aujourd'hui. Il fournit plusieurs fonctionnalités et stratégies que les programmeurs peuvent utiliser pour développer des logiciels plus performants de manière optimisée. Les modèles de conception sont l'une de ces stratégies adoptées par les programmeurs Java pour rendre leurs codes lisibles, réutilisables et compréhensibles.

Les modèles de conception constituent l'un des concepts de base que tout développeur de logiciels en herbe devrait examiner. Le monde du développement de logiciels est vaste et couvre tous les aspects du front-end, du back-end, de la base de données, du serveur, etc. Dans un tel scénario, le besoin de l'heure doit être organisé dans votre approche de l'apprentissage. Chez upGrad, vous pouvez consulter les cours de développement de logiciels qui vous aideront à bâtir une carrière durable dans le domaine du développement de logiciels. Offert en collaboration avec IIIT-B, ce cours est enseigné par des experts de l'industrie et vous donne une chance de faire avancer votre carrière dans la direction de votre choix. Consultez les détails du cours et inscrivez-vous dès aujourd'hui - le cours commence le 30 septembre 2021 !

Le modèle de conception Singleton est-il le seul modèle de conception disponible avec Java ?

Non, Java propose de nombreux modèles de conception pour les programmeurs, et Singleton n'est que l'un d'entre eux.

Quels sont les types de Design Patterns disponibles avec Java ?

Java fournit globalement trois types de modèles de conception pour les développeurs ;
1. Modèles de conception de création
2. Modèles de conception structurelle
3. Modèles de conception comportementaux

Quels sont les avantages d'utiliser Design Patterns en Java ?

L'utilisation de modèles de conception dans votre code offre les avantages indéniables suivants :
1. Lisibilité améliorée
2. Améliorer la modularité
3. Accessibilité facile
4. Facilité à concevoir et à créer des programmes.