Bonjour!
J'ai cherché sur le web la différence entre une classe statique et un singleton. Voici différents points que j'ai retenus. Certains sont discutables.
Singleton:
-Permet de passer une référence à l'objet.
-Permet la sérialisation.
-Permet le polymorphisme.
-Permet de conserver un état.
-Permet le multi-threading.
-Permet un constructeur.
Classe statique:
-Permet de conserver un état.
-Permet le multi-threading (lock sur un objet statique à l'intérieur de la classe par exemple).
-Ne permet pas de constructeur, mais une méthode d'initialisation équivalente.
Dans mon cas, j'ai une classe (je ne sais pas si elle doit être statique ou un singleton) qui ne nécessite pas le polymorphisme, ni de référence, ni de sérialisation. J'ai seulement à conserver l'état et j'aurai peut-être un peu de multi-threading.
En fait, j'ai des 3 classes qui peuvent contenir des données. Les données sont extraites à partir de trois tables d'une base de données. La classe prolématique est celle qui s'occupe d'extraire les données de la base de données et de remplir un via diverses méthodes qui rempliront certains champs et retourneront un objet de type d'une des trois classes.
L'état à conserver dans la classe problématique est seulement la connexion avec la base de données et des trucs du genre.
Je peux facilement implémenter ces deux situations: utiliser une classe statique, ou utiliser un singleton. J'ai de la difficulté à voir, conceptuellement, quelle est la meilleure solution. Ce projet sert à pratiquer les bonnes méthodes de programmation, inutile de me dire de faire l'un parce que c'est plus simple, je recherche plutôt ce qui, conceptuellement parlant, est le mieux pour ma situation. Si vous croyez qu'un autre design pattern pourrait s'appliquer, ou quoi que ce soit d'ailleurs, n'hésitez pas à me le dire!
Merci pour toute aide, ou commentaires!
Partager