Singleton pour variables globales

Résolu
Utilisateur anonyme - 30 mars 2006 à 10:15
 Utilisateur anonyme - 31 mars 2006 à 03:49
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

Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
30 mars 2006 à 10:19
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...
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
30 mars 2006 à 10:26
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#]
3
Utilisateur anonyme
30 mars 2006 à 10:35
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.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
30 mars 2006 à 10:37
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#]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
30 mars 2006 à 10:38
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...
0
Utilisateur anonyme
30 mars 2006 à 10:57
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.
0
Utilisateur anonyme
31 mars 2006 à 03:49
Merci pour vos liens pour le singleton qui n'etait pas complique que ca a mettre en place.
0
Rejoignez-nous