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 :

Singleton, Monostate ou ? [Singleton]


Sujet :

Design Patterns

  1. #1
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 939
    Points : 10 198
    Points
    10 198
    Billets dans le blog
    4
    Par défaut Singleton, Monostate ou ?
    Bonjoir à vous !

    A force de me retrouver confronté à cette question, je vous la pose.
    Vaut-il mieux un Singleton, un Monostate ou autre chose ?
    Pour l'instant je dirais autre chose (comme par exemple revoir le design de l'appli ).
    Je viens de lire ceci :
    Citation Envoyé par koala01 Voir le message
    on peut effectivement décider de recourrir (quelle horreur) à un singleton ou, ( beaucoup ) mieux, à un "monostate"
    Je ne vois pas vraiment en quoi un Monostate est mieux qu'un Singleton, sachant que le Singleton a une instance statique (et unique) de la classe alors que dans le Monostate ce sont tous ses membres qui sont statiques. En quoi est-ce mieux ? Eclairez-moi, je ne comprends pas !
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 7 634
    Points : 13 482
    Points
    13 482
    Par défaut
    Salut,

    Dans une autre de tes discussions :
    Citation Envoyé par 3DArchi Voir le message
    Au début, on utilise des variables globales
    ... et on se fait taper sur les doigts
    Tout penaud, on lit le GoF et on utilise .... des singletons
    .... et on se prend "Why Singletons are Evil" ou Etes-vous atteint de Singletonite ?
    On retourne à ses classiques et on trouve .... mono state pattern
    se fera-t-on bientôt reprendre ???
    .


    Variable globales, singletons, mono state partagent les mêmes inconvénients à plus ou moins grand degré : pb couplage (=> flexibilité, reuse, maintenance), pb de multitâche, pb de réentrance, durée de vie mal maîtrisée, cohérence difficile à assurer.... In fine, ca rend les fonctions impures, c'est dire si c'est dégueulasse comme truc
    Je le redis, pou moi, un monostate n'est pas 'mieux' qu'un singleton d'un point de vue design car monostate/singleton/variable globale/variable de classe/variable statique à l'intérieur d'une fonction sont tous des états globaux et apportent les mêmes problèmes.

    En revanche, les deux utilisations sont légèrement différentes puisque le singleton impose à l'utilisateur de savoir qu'il a à faire à un état statique alors que le monostate masque cette information à l'utilisateur de la classe.

    Cf l'article SingletonAndMonostate
    Et ces deux discussions sur stackoverflow

  3. #3
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 939
    Points : 10 198
    Points
    10 198
    Billets dans le blog
    4
    Par défaut
    Au final, j'ai viré la majorité de mes singleton/monostate.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Servlet]Singleton & cache
    Par lucimast dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 15/12/2004, 17h36
  2. Singleton héritable ?
    Par rolkA dans le forum C++
    Réponses: 10
    Dernier message: 11/12/2004, 17h22
  3. [Débutant] pattern singleton
    Par SirDarken dans le forum Débuter
    Réponses: 22
    Dernier message: 11/12/2004, 02h55
  4. Mutiple row in singleton select ????? [Important, merci]
    Par SkyDev dans le forum Bases de données
    Réponses: 6
    Dernier message: 20/04/2004, 15h02
  5. [debutant]Singleton
    Par bafman dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/01/2004, 16h41

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