Singleton pour variables globales [Résolu]

Signaler
-
 Utilisateur anonyme -
Bonjour,



Je me suis balade un peu sur le forum et j'ai vu que mon probleme pour
declarer des variables globales pouvait etre solutionne avec les
singleton. Pour tout vous avouer, mon niveau actuel en C# ne m'a pas
permis de tout comprendre et je m'interroge encore, j'ai 40 variables a
declarer en globales, est ce possible avec le singleton ? Est ce
vraiment utile de faire un singleton pour simplement declarer des
variables globales ?



Merci de m'apporter ces precisions et pour les exemples de codes deja presents sur le forum.

7 réponses

Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
J'ai mis un exemple d'implémentation d'un Singleton ici :

http://www.csharpfr.com/codes/SINGLETON-CODE-SNIPPET_36437.aspx

Mais la question que tu devrais plutot de poser est : est-ce normal d'avoir 40 variables à déclarer en globale ? Réfléchis à ta conception en exploitant bien la notion d'objet... Tes variables ne vont elles pas trouver leur places dans plusieurs classes distinctes ? Bref, le singleton est une solution technique "propre" pour les variables globales, mais avoir autant de variable globale n'est pas spécialement une bonne chose...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
y a sur Codyx aussi : http://www.codyx.org/snippet_classe-singleton-instance-unique-class_6.aspx


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]

Effectivement, je ne suis pas certain que ca soit normal mais mon
application est un logiciel de surveillance video avec huit cameras et
ces huits cameras recoivent chacunes plusieurs parametres, ces
parametres sont reglables par l'utilisateur dans une fenetre de
settings. Et encore, il manque des options qui viendront au fur et a
mesure de l'application et qui demanderont d'autres parametre reglables
par l'utilisateur. Je n'ai peut etre pas la bonne facon de penser mais
actuellement, je ne vois pas vraiment d'autres facons de faire.



Merci pour ce code et cette reponse rapide, je vais l'etudier des a present.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
le mieux est de passer par une classe Configuration pour chaque caméra, tu associeras un objet configuration.

puis tu sauvegardes ses configurations sur le disque... par sérialisation par exemple.

quelle version de .net utilises-tu ?


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
Et bien rien qu'en reprennant ce que tu viens de dire, je pourrai te dire que tes variables ne sont pas des variables globales... mais des propriétés d'une classe Camera... S'il s'agit de 8 caméras du même 'type', alors tu aura une classe Camera, et 8 instances de cette classe. S'il s'agit de caméra de marque/type différents, tu aura éventuellement une classe Camera, puis des classes qui dériveront ce cette dernière : CameraMachin, CameraTruc, chacune avec ses propriétés spécifiques...

J'utilise VS 2003 avec le Framework 1.1. Effectivement, on peut faire
ca en sauvegardeant les configurations sur le disque ce qui ne doit pas
etre trop complique.



Nikoui, je vois a peu pres ce que tu veux dire mais j'ai du mal avoir
comment je pourrais l'appliquer dans mon code car je n'ai pas de class
camera et que les parametres que je veux passer sont des parametres qui
activent ou desactivent la camera mais pas des proprietes de celle ci.

Merci pour vos liens pour le singleton qui n'etait pas complique que ca a mettre en place.