IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Design Patterns Discussion :

Probl�me de conception


Sujet :

Design Patterns

  1. #1
    Membre �clair�
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Par d�faut Probl�me de conception
    Bonjour,

    Lorsqu'on utilise le singleton, on peut imaginer se retrouver dans le cas o� celui-ci est d�truit avant qu'un appel � getInstance soit effectu� pour r�cup�rer ses param�tres (qui ne sont plus car on instancie un nouvel objet singleton au getInstance...)

    Quelle est la meilleure fa�on de pallier � ce probl�me ?

    Merci

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 89
    Par d�faut
    Bonjour,

    Je pense que l'utilisation 'classique' du singleton est tout simplement de ne jamais d�truire l'objet singleton. Au mieux une seule fois, juste avant que le programme se termine.

    Si votre application n�cessite la destruction de l'objet, c'est probablement que les param�tres en question n'�tait plus valables.

    S'il y a des param�tres qui doivent malgr� tout subsister en d�pit de cette destruction, je vois deux cas :
    • Ce sont des constantes : les d�finir en membres de classe et non d'objet (d�clar�s en 'const' �videmment)
    • Les param�tres doivent avoir des dur�es de vie diff�rentes : Votre singleton a probablement trop de responsabilit�s. Vous devez le d�composer en deux singletons (ou plus) diff�rents, un par responsabilit� identifi�e.


    qui ne sont plus car on instancie un nouvel objet singleton au getInstance...
    Je n'ai pas bien compris cette phrase.
    Si vous voulez dire que les param�tres ne sont pas initialis�s ou mal suite � la nouvelle instanciation, vous pouvez enrichir la m�thode getInstance() pour remplir les param�tres que le constructeur ne pouvait pas deviner.
    Si la m�thode getInstance n'est pas non plus capable de correctement remplir les param�tres, vous avez probablement un probl�me de d�pendance dans votre classe, et vous devez v�rifier que les param�tres en question soient vraiment � leur place dans cette classe.

  3. #3
    Membre �clair�
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    D�tails du profil
    Informations personnelles :
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Par d�faut
    Salut et merci tristan_m pour ton aide

    Je pense que l'utilisation 'classique' du singleton est tout simplement de ne jamais d�truire l'objet singleton. Au mieux une seule fois, juste avant que le programme se termine.
    Tout � fait d'accord mais je pars du principe que sur un projet � plusieurs, quelqu'un peut malencontreusement le d�truire avant la fin du programme et donc entra�ner ce genre de comportement, d'o� un manque de robustesse.

    qui ne sont plus car on instancie un nouvel objet singleton au getInstance...
    Je n'ai pas bien compris cette phrase.
    Ce que je veux dire ici, c'est que si jamais des valeurs ont �t� d�finies dans le singleton et que ce dernier est d�truit, on ne retrouvera pas les valeurs � la nouvelle instanciation.

    Les param�tres doivent avoir des dur�es de vie diff�rentes : Votre singleton a probablement trop de responsabilit�s.
    Je pense que l'id�e est bonne oui. Il faudrait peut �tre que le singleton puisse venir changer les valeurs sans pour autant que ces derni�res soient influenc�es par sa destruction. Apr�s, il faut que la destruction des donn�es se fassent ailleurs.

  4. #4
    Membre chevronn�
    Avatar de tse_jc
    Homme Profil pro
    Data Solutions
    Inscrit en
    Ao�t 2010
    Messages
    287
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : Data Solutions
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Ao�t 2010
    Messages : 287
    Billets dans le blog
    4
    Par d�faut
    Bonjour

    Ce que je veux dire ici, c'est que si jamais des valeurs ont �t� d�finies dans le singleton et que ce dernier est d�truit, on ne retrouvera pas les valeurs � la nouvelle instanciation.
    Dans quel environnement parlez vous?. Si vous �tes en PHP votre classe de type singleton sera d�truite au m�me titre que n'importe quelle autre classe � la fin de l'ex�cution de votre script, et tout comme n'importe quelle autre classe vous pouvez persister votre singleton dans votre application et r�cup�rer les valeurs que vous voulez � la nouvelle instanciation.

    Je vous rappelle � ce titre l'un des principes m�mes de la programmation orient�e objet : l'encapsulation. A ce titre c'est votre singleton qui lui m�me d�cide si on peut le d�truire ou non et sous quelles conditions, personne d'autre ni n'importe quel autre objet.

    Jc.

Discussions similaires

  1. M�thode Finalize et probl�me de conception
    Par phryos dans le forum Langage
    R�ponses: 4
    Dernier message: 19/04/2006, 11h04
  2. [VB6][UserControl et OCX]Probl�me de conception
    Par jacma dans le forum VB 6 et ant�rieur
    R�ponses: 8
    Dernier message: 19/01/2006, 22h37
  3. Petit probl�me de conception sur access
    Par coooookinette dans le forum Mod�lisation
    R�ponses: 3
    Dernier message: 18/12/2005, 18h24
  4. Gestion des d�partements probl�me de conception
    Par snoopy69 dans le forum Mod�lisation
    R�ponses: 7
    Dernier message: 11/10/2005, 13h08
  5. Probl�me de conceptions de tables
    Par dtavan dans le forum MS SQL Server
    R�ponses: 2
    Dernier message: 23/05/2004, 23h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo